0

ログインページの API への POST を実行する次の JavaScript コードがあります。

        do_post_form_data = function (relative_url, access_token, postData) {
        return $.Deferred(function (def) {
            $.ajax({
                type: 'POST',
                url: baseURL + relative_url,
                contentType: 'application/x-www-form-urlencoded',
                dataType: 'json',
                data: postData
            })
            .done(function (data) {
                def.resolve(data);
            })
            .fail(function (jqXHR, textStatus, errorThrown) {
                var error = jqXHR.responseJSON ? jqXHR.responseJSON : { error: "", error_description: "POST failed." };
                def.reject(error);
            });
        });
    },

ログインが失敗した場合 (無効な資格情報が送信された場合)、API は呼び出し元に 401 Unauthorized エラーを返し、ログインが失敗した理由を説明する JSON オブジェクトが本文に含まれます。Chrome、Firefox、および Safari の最新バージョンからデータを送信すると、コードは期待どおりに機能します。jqXHR オブジェクトに responseJSON オブジェクトが存在し、エラー メッセージを取得できます。

ただし、IE10 は 401 エラーを傍受し、API サーバーが URL を提供しないログイン ページにリダイレクトしようとしているようですが、Fiddler でサーバーに対して追加の呼び出しが行われていることはわかりません。私の AJAX 呼び出しでは 401 エラーは表示されませんが、jqXHR オブジェクトに JSON データがないため 404 エラーが返されます。

以前にこの動作を見て、IE に最初の 401 エラーを AJAX 呼び出しに報告させる方法を見つけた人はいますか? jQuery 2.0.2 を使用した IE10。

提案をありがとう。

4

0 に答える 0