1

私は非常に奇妙な問題に遭遇しました。次のjQueryは、HTTP 405エラーコードを受信し、GETの代わりにOPTIONSリクエストメソッドを送信します。

function GetPerf() 
{
    jQuery.support.cors = true;
    leInterval = setInterval(function()
    {
    $.ajax({
        url: "http://localhost/PerfMon3/api/performance/categories",
        data: { machine_name : "CLOUDMACHINE" },
        type: "GET",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        xhrFields: {
        withCredentials: true
        },
        success: function (data) {
            WriteResponse(data);
        },
        error: function (x, y, z) {
            alert(data);
        }
    });
    },
    1000)
}

興味深いのは、これはInternet Explorerで完全に機能することですが、Chromeでは405を取得します。何が起こっているのか誰か知っていますか?

追記:アプリケーションがホストされているIISを使用してブラウザーから実行すると、ブラウザーに関係なく完全に正常に機能します。この問題は、リモートマシンからのみ発生します。

4

1 に答える 1

0

そうですね、SOで質​​問した直後に、自分のテストで問題の答えを見つけるのが大好きです。ごめんなさい、みんな。

jQueryのURL行を次のように変更しました

url: "http://cloudmachine/PerfMon3/api/performance/categories"

そして今、それは完全にうまく機能します。

それでも、なぜ元々IEでのみ機能したのでしょうか。それは意味がありません。

于 2012-09-06T03:41:43.173 に答える