我在从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浏览器中运行。 –