首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsonp,就是不能工作..总是出错

jsonp,就是不能工作..总是出错
EN

Stack Overflow用户
提问于 2012-03-28 03:50:56
回答 4查看 1.1K关注 0票数 0

我读了一遍又一遍..我正在试着拉出我可以用谷歌搜索到的上一个答案的摘要。我不明白这里的问题是什么,因为firebug可以很好地找到并解析可恶的json。

所以试一试

代码语言:javascript
复制
var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp';
$.getJSON(url+'?callback=?', function(data){
    alert('true');
    $.jtrack({
        load_analytics:{account:GAcode},
        trackevents:data // this can be hard codded here or set do be feed in like so
        });
});

失败了,但我看到了

所以

代码语言:javascript
复制
var url='http://images.wsu.edu/javascripts/tracking/configs/pick.asp';
$.ajax({ 
  url: url, 
  cache: false,  
  dataType: 'jsonp',
  jsonp : "callback",
  success: function(data){ 
    alert('data');
    //data=jQuery.parseJSON(data);
    $.jtrack({
        load_analytics:{account:GAcode},
        trackevents:data // this can be hard codded here or set do be feed in like so
    });
  }, 
  error: function(e, xhr){ 
    alert('error');
    alert(e);
  } 
});

再一次失败..所以..。嗯,我想错误会告诉我..没什么..。所以..。让我们实实在在地测试输出,这是它自己的原因,它肯定会找到url,而我调用的是jsop和..好的,让我们验证输出,因为这肯定是问题所在。

所以..。我不知道..。我从曼谷找到了这里的每一条该死的线索。只有一个人知道是怎么回事?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-28 03:58:45

请查看此链接:JSON Example using Callback

我认为返回的JSON需要将回调放在返回的JSON中。在上面的示例中,它被放在前面,如下所示:

代码语言:javascript
复制
CALLBACKVALUE([{"id":"4","name":"FICTION","parentid":"3","getfullname":"BOOKS > FICTION"},{"id":"5","name":"NON-FICTION","parentid":"3","getfullname":"BOOKS > NON-FICTION"})
票数 1
EN

Stack Overflow用户

发布于 2012-03-28 04:16:17

我认为问题在于您返回的不是JSONP内容,而是JSON。您需要将callback参数放在当前提供的JSON的开头,并将其括在括号中。例如,您当前正在返回:

代码语言:javascript
复制
[{
    "element":"#null",
    "options":{}
 }, 
   ...
]

你需要返回:

代码语言:javascript
复制
value_of_callback_param([{
    "element":"#null",
    "options":{}
  }, 
  ...
]);

尾随的;是可选的。参见this link,它描述了它是如何工作的。

此外,我认为内容类型应该使用application/javascript而不是application/json,因为您将返回有效的JavaScript,而不仅仅是一个JSON对象/数组。此外,jQuery docs for the $.ajax function声明不应该为error请求调用JSONP回调。

票数 0
EN

Stack Overflow用户

发布于 2012-03-28 04:17:02

只需让pick.asp获取jquery参数(从现在起称为<some string> )的值,该参数将由callback生成并像下面这样的pick.asp?callback=<some string>发送到服务器。然后使用该值构建响应,如下所示:

代码语言:javascript
复制
<some string>(<your json>);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9896661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档