我在使用jquery 1.7处理发布请求的响应对象的Internet Explorer 11时遇到了一些麻烦。
loader.request = jQuery
.post("/gateway-portal-war/prediction", {
action : "index",
matchcode : this.customerMatchCode,
timespan : timespan
})
.done(
function(data) {
loader.displayData(data
.getElementsByTagName("response")[0]);
document.getElementById('loader_'
+ loader.customerMatchCode).style.display = "none";
});
在firefox / chrome中,该对象被视为一个html文档元素,可以进行进一步处理,从文档中获取响应等等。
这里的问题是IE中的响应是字符串中的xml,如下所示:
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<response>\n ...</response>\n"
我试图通过将响应转换为activeXObject来修复那个
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
//xmlDoc.load(data);
xmlDoc.loadXML(data);
但是在调试之后我发现ActiveXObject中的几乎所有东西都没有被初始化或者是null,之后会产生一些错误
答案 0 :(得分:1)
您需要在ajax调用中定义dataType;
.post("/gateway-portal-war/prediction", {
action : "index",
dataType: "xml", //here
matchcode : this.customerMatchCode,
timespan : timespan
})
jQuery会自动解析你。如果你没有定义IE11,它可能无法解析。