3

我们一直在使用 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=

4

2 回答 2

0

我也在我的一个项目中使用 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=?” 而不是在请求选项中定义它(不确定是否重要)。

于 2011-05-13T10:40:39.873 回答
0

在函数中使用“window.alert”而不是“alert”......这在我的情况下起到了作用......希望这有帮助......

于 2011-04-01T07:35:41.030 回答