我在從IE中的JSON feed獲取數據時遇到了問題。讓JSON在IE中工作
這是測試。它提醒在FF,Chrome瀏覽器,Safari瀏覽器,而不是IE:
function do_something(data){
alert(data);
}
$(document).ready(function() {
$.getJSON('https://www.mec.ca/api/v1/stores/1', do_something);
});
而這裏的小提琴:http://jsfiddle.net/upksp/
我曾嘗試以下解決方案看似相關,沒有運氣的問題:
- 使用
$.ajax()
而不是$.getJSON()
:$.getJSON not workin in IE - 追加
&callback=?
:$.getJson not working in IE
我不禁想到它可能是一個頭的問題,但不知道他們足夠的診斷。我已經成功地在同一頁面上使用JSONP,沒有任何問題,並且我沒有看到任何衝突。幫幫我!
注:對於我工作的代碼,該API將在同一個域(1)作爲被請求它的腳本。然而,對於測試,他們將有不同的子域(2),如www.domain.com vs environment.domain.com。我認爲(2)會有問題,但(1)會正常工作?
您無法對另一個域執行請求。 http://stackoverflow.com/a/8449129/251311 – zerkms
在爲該JSON文件發出Ajax請求時,服務器響應包含一個「access-control-allow-origin:http:// fiddle.jshell.net」HTTP -header,這意味着服務器使用CORS並返回請求的Origin,允許所有跨域請求。但是,IE不支持CORS,但它確實爲跨域Ajax請求提供了另一種方法。有些插件可以在IE中啓用此功能,例如https://gist.github.com/1114981 –
@zerkms CORS在該特定服務器上啓用。只是jQuery不提供IE的CORS功能。當然,跨域Ajax請求是可能的,OP的代碼可以在非IE瀏覽器中運行。 –