我有一个小的 ASP.NET 网站,它使用 jQuery 对 Web API Web 服务进行 Ajax 调用(在另一个域上,允许 CORS,标头都已设置)。
我在 Chrome 和 IE10 中都对其进行了测试,在这两种浏览器中,独立站点都运行良好。接下来我要做的就是把网站变成一个 DotNetNuke 模块。这很容易实现,当我使用 Chrome 对其进行测试时,模块可以正常工作并且所有 Ajax 请求都已发出。但是,当我在 IE10 中运行同一页面时,模块发出的每个 Ajax 请求都会返回错误消息“拒绝访问”。
当我查看 Fiddler 时,我注意到 IE 甚至不发出 Ajax 请求。
我知道在 Stackoverflow 上可以找到几个类似的问题,但我觉得他们的情况与我的情况相比有点不同,因为当我在 IE 中运行没有 DotNetNuke 的网站时,Ajax 工作正常。我仍然尝试使用下面的代码发出相同的请求,但我得到了完全相同的错误,就像使用 jQuery Ajax 一样,在 Fiddler 中找不到请求。当我执行 xdr.Open 时,Visual Studio 会引发“拒绝访问”错误。
if (window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("get", "http://localhost:59390/api/controller/depots");
xdr.onload = function () {
// XDomainRequest doesn't provide responseXml, so if you need it:
var dom = new ActiveXObject("Microsoft.XMLDOM");
dom.async = false;
dom.loadXML(xdr.responseText);
};
xdr.send();
}
有谁知道这怎么可能以及如何解决?