2011-03-23 153 views
3

我們一直在使用JSONP(http://code.google.com/p/jquery-jsonp/)執行一些本地主機調用來檢索JSON對象......我今天升級到Firefox 4,現在我們的代碼使用在Firefox 4中不起作用,但它仍然適用於IE,Chrome和Safari。JSONP與Firefox 4無法正常工作?

通過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

如果你在Firebug下運行你的代碼,你會在控制檯看到什麼錯誤?我認爲這很可能是您的特定代碼顯示了與Firefox 4的一些奇怪的交互... – 2011-03-23 16:20:27

+0

我沒有得到任何錯誤。 – 2011-03-23 16:22:30

+0

@Josh好吧,我的博客使用了一小部分JSONP(它從JSONP geolocator服務中獲取國家代碼以確定是否服務美國或英國亞馬遜廣告),並且在Firefox 4.0中工作正常;我只是測試它。你能否將你的代碼縮減爲一個無法工作的小例子併發布? – 2011-03-23 16:46:28

回答

0

使用 「window.alert」 裏面的功能,而不是「警惕「......這在我的情況做了伎倆......希望這有助於...

+0

謝謝我會嘗試 – 2011-04-04 16:20:05

0

我也在我的一個項目中使用jsonp,幾周前我測試了它,但它不工作。不過,我今天再次測試,它似乎是做工精細:

I tested this on Firefox 4.0, 4.0.1 on Windows and Linux with jQuery 3.1.2, 4.1.2 using 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 =?」而不是在請求選項中定義它(不確定它是否重要)。