gpt4 book ai didi

javascript - XDomainRequest - 不调用...不做任何事情

转载 作者:行者123 更新时间:2023-11-29 10:50:47 25 4
gpt4 key购买 nike

我有一个问题...我使用 jQuery ajax 调用返回 XML 的网络服务。 jQuery ajax 对除 ie 之外的所有浏览器都非常有效。

所以对于 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();
}
  • 这个确切的代码在应用程序的其他地方工作得很好不同的网址。

    url 很好,它返回浏览器中应该返回的内容(以及为什么 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");
}

所以我不认为这是标题问题。

我的处理人员都没有开火。不是onprogress、ontimeout、onerror……什么都没有!我没有时间将 Web 服务转换为 JSON。

有什么想法吗?

谢谢!

最佳答案

免责声明 - 我实际上没有使用“XDomainRequest” - 当使用 jQ 时,我将数据设置为 jsonp 用于 xdomain 请求...

调试时 - 您是否使用 IE 开发工具 (F12)?如果不是,错误可能是 console.log

编辑:我认错了,忽略 jsonp 东西 - 错过了你提到的部分 XML


更新:

出于好奇,我正在尝试 XDomainRequest。我复制了您的代码并为 theUserUrl 添加了一个值。

  • 如上/预期,除非我运行 Internet Explorer 开发人员工具,否则 consoleundefined - 并且可能给人的印象是“您的处理程序都不是射击”。

  • 一旦我启用了 IE 开发工具(停靠或其他方式),xdr.onerror 就会触发。 we have an error 记录在 IE 控制台中。因此,当出现错误时,处理程序触发。

Internet Explorer Dev Tools Consoloe

快速阅读XDomainRequest 要求响应 服务器具有Access-Control-Allow-Origin header 。我正在调用我自己的服务器,我知道我没有设置了这个 header ,所以无需进一步调试,这将是一个很好的猜测,这就是为什么 xdr.onerror 是被解雇。

关于javascript - XDomainRequest - 不调用...不做任何事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10609161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com