我们一直在使用JSONP (http://code.google.com/p/jquery-jsonp/)进行一些本地主机调用来检索JSON对象……我今天升级到了Firefox4,现在我们使用的代码不能在Firefox4中运行,但它仍然可以在IE,Chrome和Safari中运行。
使用JSONP插件,它会附加一个脚本标记,其中包含大量内容……它实际上就像XSS一样……所以我想知道Firefox现在是不是在试图阻止这种情况。
代码:
$.jsonp({
url: "http://localhost:2020/wsService/LocalResources/All",
callback: "callback",
success: function(data) {
// some success code
},
complete: function(xOptions, textStatus) {
// this code doesn't alert in firefox 4
alert("Complete");
},
error: function(xOptions, textStatus) {
// error code
}
});然后它会追加这个字符串
<script id="_jqjsp1" async="" src="http://localhost:2020/wsService/LocalResources/All?_1300967068015=">无法加载源:http://localhost:2020/wsService/LocalResources/All?_1300967068015=
发布于 2011-04-01 15:35:41
在函数中使用"window.alert“而不是"alert"...这在我的案例中起到了作用。希望这能帮到你。
发布于 2011-05-13 18:40:40
我也在我的一个项目中使用jsonp,几周前我测试了它,它不工作。然而,我今天再次测试了它,它似乎工作得很好:
我使用jsonp: 2.1.2
在装有jQuery 3.1.2、4.1.2的Windows和Linux上的Firefox4.0、4.0.1上进行了测试
下面是我使用的代码:
jQuery.jsonp({
url: "http://api.twitter.com/1/statuses/user_timeline.json?include_rts=t&screen_name=twitter&rpp=20&callback=?",
success: function(data) {
alert("Success");
},
complete: function(xOptions, textStatus) {
alert("complete");
},
error: function(xOptions, textStatus) {
alert("Error");
}
});唯一的区别是,我在url的末尾以"callback=?"的形式传递回调,而不是在请求选项中定义它(不确定这是否重要)。
https://stackoverflow.com/questions/5408346
复制相似问题