编程语言
首页 > 编程语言> > javascript-XDomainRequest-不调用…什么都不做

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