JSONP 与 Firefox 4 不工作?
Posted
技术标签:
【中文标题】JSONP 与 Firefox 4 不工作?【英文标题】:JSONP with Firefox 4 Not Working? 【发布时间】:2011-07-21 11:16:12 【问题描述】:我们一直在使用 JSONP (http://code.google.com/p/jquery-jsonp/) 来做一些 localhost 调用来检索 JSON 对象...我今天已经升级到 Firefox 4,现在我们的代码was using 在 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=
【问题讨论】:
如果您在 Firebug 下运行代码,您会在控制台中看到哪些错误?我认为您的特定代码可能更有可能显示出与 Firefox 4 的一些奇怪交互... @Josh 好吧,我的博客使用了一点点 JSONP(它从 JSONP 地理定位器服务中获取国家代码,以确定是投放美国还是英国的亚马逊广告),这在 Firefox 4.0 中运行良好;我刚刚测试了它。你能把你的代码缩减为一个不起作用的小例子并发布吗? 是这样的: $.jsonp( url: "localhost:2020/wsService/LocalResources/All", callback: "callback", success: function(data) // 做成功的事 , error: function (xOptions, textStatus) // 做错误的东西 ); @Josh 我已将您的代码编辑到您的问题中。你真的在 URL 字符串后面有那个分号,还是一个错字? 认为这是一个错字 - 刚刚检查了 js 文件中的代码,但它不存在......哎呀。已更新您的代码编辑... 【参考方案1】:在函数中使用“window.alert”而不是“alert”...这在我的案例中起到了作用...希望这会有所帮助...
【讨论】:
【参考方案2】:我也在我的一个项目中使用 jsonp,几周前我对其进行了测试,但它无法正常工作。但是我今天再次测试它,它似乎工作正常:
我在 Firefox 4.0、4.0.1 上使用 jQuery 3.1.2、4.1.2 在 Windows 和 Linux 上使用 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");
);
唯一的区别是我将 url 末尾的回调作为 "callback=?" 传递,而不是在请求选项中定义它(不确定是否重要)。
【讨论】:
以上是关于JSONP 与 Firefox 4 不工作?的主要内容,如果未能解决你的问题,请参考以下文章