我有一个问题...我使用 jQuery ajax 调用返回 XML 的 Web 服务。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 正常工作。
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。
有什么想法吗?
谢谢!