javascript-XDomainRequest-不调用…什么都不做
作者:互联网
我有一个问题…我使用jQuery ajax调用返回XML的Web服务. jQuery ajax的东西对所有浏览器都很棒,除了ie.
因此,对于浏览器,我正在使用XDomainRequest.这是代码:
if ($.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("get", theUserUrl);
xdr.timeout = 95000;
xdr.onerror = function () {
console.log('we have an error!');
}
xdr.onprogress = function () {
console.log('this sucks!');
};
xdr.ontimeout = function () {
console.log('it timed out!');
};
xdr.onopen = function () {
console.log('we open the xdomainrequest');
};
xdr.onload = function () {
// XDomainRequest doesn't provide responseXml, so if you need it:
var xml2 = new ActiveXObject("Microsoft.XMLDOM");
xml2.async = false;
xml2.loadXML(xdr.responseText);
console.log('do we get any response text at all?: ' + xdr.responseText);
ParseOwnershipObjects(xml2);
//AddServiceRequestsToMap(xml2, map, spinner);
};
xdr.send();
}
>此确切的代码可以在应用程序中的其他地方正常工作,并带有
不同的网址.
网址很好,它返回的正是浏览器中的内容
(以及为什么jquery ajax调用有效).几件事
注意:
我正在将自己的html / javascript与另一个人的asp.net集成在一起
项目.
在global.asax.cs文件中,我有:
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET,OPTIONS");
}
所以我认为这不是标题问题.
我的管理人员都没有开火.不是正在进行中,超时,出错…什么都没有!
我没有时间将Web服务转换为JSON.
有什么想法吗?
谢谢!
解决方法:
免责声明-实际上我没有使用过’XDomainRequest’-使用jQ时,我将数据设置为jsonp用于xdomain请求…
调试时-您是否正在使用IE Dev工具(F12)?如果不是,则错误很可能是console.log
编辑:
mea culpa,无视jsonp内容-错过了您提到的XML部分
更新:
出于好奇,我正在尝试XDomainRequest.我复制了代码,只是为UserUrl添加了一个值.
>如上/预期,除非运行Internet Explorer Developer工具,否则控制台未定义-可能会给人以“您的处理程序均未触发”的印象.
>一旦启用IE开发工具(对接或其他方式),就会触发xdr.onerror.我们在IE控制台中记录了一个错误.因此,当发生错误时,处理程序会触发.
快速阅读XDomainRequest要求响应服务器具有Access-Control-Allow-Origin标头.我正在呼叫自己的服务器,我知道我没有设置此标头,因此如果不进行进一步调试,则很可能就是xdr.onerror被触发的原因.
标签:internet-explorer,xdomainrequest,asp-net,javascript 来源: https://codeday.me/bug/20191201/2079962.html