2

最近、いくつかのajaxコードをリファクタリングして非同期にしました。以前は完全に機能していましたが、jQueryのpromiseを使用したかったので、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ですべてをラップするなど、同様の状況にある他の人々がSOで提案したいくつかの明白なことを試しました。それはそれを修正しません。$loadingSvg変数はスクリプトの先頭でグローバルに宣言されているので、そうではありません。何かアイデアはありますか?

4

1 に答える 1

1

問題は実際にはあなたのconsole.logラインです:

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

より具体的には、IEはXMLドキュメントを文字列と連結することはできません。実際、XMLは文字列と連結することはできません。彼らはサポートしていません.toString()。その部分を削除して作業を続けるだけです:)

于 2012-06-26T02:56:40.427 に答える