我的情况非常有趣。我为一家中型公司工作,我们的浏览器有IE 11,但对于我正在编程的特定应用程序,其文档模式设置为IE 5.我正在调用位于公司Intranet内的Web服务(特定URL是https)和我打电话的网站是http(不知道我是否可以在这里设置document.domain或其他任何东西)。我目前正在使用ajax,我能够成功地与服务进行通信,并使用下面的代码获取代码。虽然,每次我收到的消息都说“您正在访问的信息来自其他来源。”如果我点击是,那么我从服务器获取信息,如果我没有,那么数据不会通过。我试图从同一网站上的不同页面调用相同的方法,而是在没有提示的情况下获得访问被拒绝错误。那个让我很困惑。
此时我已经阅读了许多关于CORS主题的不同文章,并且知道有一些事情可以尝试避免这个消息。凭证在下面省略。我正在使用Jquery 1.9.1最小化版本。
$.support.cors = true;
$.ajax
({
type: "POST",
crossDomain: true,
beforeSend: function(request)
{
request.setRequestHeader("Authorization", "");
return true;
},
url: webServiceURL,
dataType: "xml",
async: true,
data: soapMessage,
contentType: "text/xml; charset=\"utf-8\"",
success: OnSuccess,
error: OnError
});
}
function OnSuccess(data, status)
{
alert(status);
alert(data);
var documentValArr = parseXMLRrec(data);
insertDataIntoTable(documentValArr);
}
function OnError(request, status, error)
{
alert(request.responseText);
alert(error);
alert(status);
}
启用跨域源IE设置。我想这可以尝试为该Intranet区域中的特定URL设置,但它仍然让我觉得不对。不确定工作中的安全组如何对此感到满意。
添加我尝试访问Intranet可信站点的URL。我认为这可以解决我所看到的问题,这是我绝对想要尝试的。
此外,在本地工作站上测试并通过IE 11 doc 5模式调用Web服务时,我收不到消息。
使用拥有服务所在服务器的组,并查看他们是否可以以某种方式添加可以访问服务的URL。这很有意思,因为有很多生产基地。
因为我在doc 5模式下使用IE 11,所以我可以尝试使用XDomainRequest对象但是我不确定如果先前的选项能够解决这个问题是否值得付出努力。
所以我的有趣场景是。我非常希望能够从人们那里了解情况,他们会做什么,以及什么类型的事情和解决方案。非常感谢所有的投入和想法!