我正在从y.x.com向x.com发出ajax请求,除了IE 8和9之外,我在大多数浏览器中都能正常工作,我收到了拒绝访问的错误。这是我的代码
if (!empty && radio_checked) {
$(".modal-content").animate({
height: "250px"
}), 500, function () { };
$.support.cors = true;
var url = "localhost:5603/ajax/post/sell-exm/?" //localhost for testing locally
if ($.browser.msie && window.XDomainRequest) {
var xdr = new XDomainRequest();
xdr.open("post", url+data); // *** ERROR HERE ***
xdr.send(data);
} else {
$.ajax({
type: "POST",
url: url,
data: data,
datatype: "jsonp",
success: function(r){
//nothing needed here
}
});
}
}
同样,这适用于除IE 8和IE之外的所有浏览器。 9.此外,我在web.config上有一个Access-Control-Allow-Origin自定义标头。
答案 0 :(得分:0)
我不确定这是否是XDR的工作方式,但由于某种原因,它在我的服务器上的工作方式如此,但看起来像'open'触发了我的.Net后端的ajax响应,并阻止了通过发送(听起来不对,但这就是它在Fiddler中的表现)。因此,没有发布任何表格数据,这导致了所有奇怪的事情发生。
为了解决这个问题,我将帖子更改为get,并在我的.Net Ajax控制器中添加了一个说if Request.Form.AllKeys.Length = 0
的子句,改为获取查询字符串。