我尝试了在Google上找到的所有功能,但没有成功。
我正在尝试将HTTP请求调用到其他域上的服务器 在所有浏览器上它都可以工作,即使在IE10上但是,在IE9及更低版本上,它似乎无法正常工作 在IE9及更低版本中,它仅在所有方法上发送没有正文的标题。
我正在使用jQuery进行AJAX调用,可以从不同的域调用该调用(实际上它可以来自任何域)。
一个JavaScript示例:
$.ajax({
url: "http://api.domain.com/path",
type: "POST",
crossDomain: true,
cache: false,
data: JSON.stringify({data:"some body data in a json format"}),
dataType: "json",
contentType: "application/json",
success: function(data, textStatus, jqXHR){
console.log("Response data: ", data, textStatus, jqXHR);
},
error: function(jqXHR, textStatus, errorThrown){
console.error("AJAX error: ", jqXHR, textStatus, errorThrown);
}
});
IE9请求:
POST /path HTTP/1.1
Origin: http://[some domain]
Accept-Language: en-GB
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: api.domain.com
Content-Length: 0
DNT: 1
Connection: Keep-Alive
Cache-Control: no-cache
Accept: */*
[no request body]
服务器的响应是:
HTTP/1.1 500 Internal Server Error
Server: MochiWeb/1.1 WebMachine/1.9.2 (someone had painted it blue)
Date: Mon, 17 Jun 2013 11:24:26 GMT
Content-Type: text/html
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
我正在使用jQuery.XDomainRequest插件,但它没有帮助
我也设置jQuery.support.cors = true;
,但它也没有帮助。
我需要提一下的是,在IE10上,它在POST请求之前发送OPTIONS请求,而在IE9上只是POST请求。
有什么建议吗?
答案 0 :(得分:0)
我不知道这个jQuery插件。但是将ajax帖子发送到跨域是一个安全问题。所以浏览器不支持这个。如何管理向其他域发布数据真是太棒了。
以下链接可能会有所帮助 Why the cross-domain Ajax is a security concern?