我们一直在使用JSONP(http://code.google.com/p/jquery-jsonp/)进行一些localhost调用来检索JSON对象...我今天已升级到Firefox 4,现在代码我们使用在Firefox 4中不起作用,但它仍然适用于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=的来源
答案 0 :(得分:0)
在函数内部使用“window.alert”而不是“alert”...这样就可以解决我的问题...希望这会有所帮助......
答案 1 :(得分:0)
我也在我的一个项目中使用jsonp,几个星期前我测试了它并没有用。不过我今天再次测试它似乎工作正常:
我在Windows 4.0和Linux上使用jQuery 3.1.2,4.1.2在Firefox 4.0,4.0.1上使用jsonp:2.1.2进行了测试
以下是我使用的代码:
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");
}
});
唯一的区别是我在网址末尾传递回调为“callback =?”,而不是在请求选项中定义它(不确定是否重要)。< / p>