2

我最近重构了一些 ajax 代码以使其异步。它以前工作得很好,但我想使用 jQuery 承诺,所以我对它进行了 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);
        }
});
}

我已经尝试了其他人在类似情况下建议的一些明显的事情,比如将所有内容包装在 jQ $(document).ready 中。那不能解决问题。该$loadingSvg变量是在脚本顶部全局声明的,不是吗。有什么想法吗,伙计们?

4

1 回答 1

1

问题实际上是你的console.log线:

console.log("Ajax request successfully returned: " + data);

更具体地说,IE 似乎无法将 XML 文档与字符串连接起来,或者实际上无法将 XML 文档与字符串连接起来。他们不支持.toString()。只需删除该部分并继续工作:)

于 2012-06-26T02:56:40.427 回答