我正在尝试提出一个跨域请求,这个请求可以在$.getJSON中很好地工作。但是在IE中,我得到了一个讨厌的访问被拒绝错误。也许我不理解onload参数或XDR,但是当我添加参数时,什么都没有发生,只是挂起,没有错误,或者什么也没有。以下是代码:
var xdr = new XDomainRequest();
xdr.open("get", "http://somedomain.com?callback=?");
xdr.onload = function() {
$.extend($.CSSService.sessionData,{"call_type":"create"});
$.extend($.CSSService.sessionData,data);
$.CSSService.sessionData.typing = false;
timeoutTimer = setTimeout(PollServer,100);
if(Callback) setTimeout(Callback,500);
};
xdr.send();下面是在其他浏览器中完美工作的JSON调用。
$.getJSON("http://somedomain.com?callback=?",$.extend($.CSSService.sessionData, {"call_type":"create"}),function(data){
$.extend($.CSSService.sessionData,data);
$.CSSService.sessionData.typing = false;
timeoutTimer = setTimeout(PollServer,100);
if(Callback) setTimeout(Callback,500);
}
});我被困在这上面已经好几个小时了。对我做错了什么有什么想法。代码示例非常受欢迎,因为我的JSON和jQuery没有达到标准。
发布于 2013-08-18 16:45:51
第二个片段指定了回调参数,因此$.getJSON实际上使用JSONP,这是一个很好的跨域。
首先,代码片段试图使用CORS。由于请求被拒绝,我假设远程服务器没有实现CORS,或者只是不想允许您的域。
第二个片段应该可以在所有浏览器中工作,包括IE8。
https://stackoverflow.com/questions/18301236
复制相似问题