我最近重构了一些ajax代码以使其异步。它以前工作得很好,但我想使用jQuery promises,所以我jQuerified它。但是,现在,ajax调用适用于每个浏览器,但IE。
IE9抛出错误,其中ajax函数被赋予变量名称。 IE中的错误是:
“对象不支持第99行的此方法或属性。”
这是发生错误的块:
if (screen.width > 525 && svgSupported) {
$loadingSvg = $.ajax({
type: 'GET',
url: 'images/mypicture.svg',
dataType: 'xml',
success: function(data){
console.log("Ajax request successfully returned: " + data);
console.log(data);
},
error: function(data){
console.log("Ajax request failed: " + data);
}
});
}
我已经尝试过类似情况下其他人在SO上提出的一些显而易见的事情,比如在jQ $(document).ready中包装所有内容。这不能解决它。 $loadingSvg
变量在脚本的顶部全局声明,所以不是这样。任何想法,伙计们?
答案 0 :(得分:1)
问题实际上是您的console.log
行:
console.log("Ajax request successfully returned: " + data);
更具体地说,IE似乎无法将XML文档与字符串连接,或者实际上XML与字符串连接。他们不支持.toString()
。只需删除该部分即可继续:)