1

jQuery(バージョン1.6.4を使用しています)のAJAX呼び出しによって返される可能性のあるHTTPステータスエラー(404、501など)を適切に処理しようとしていますが、私の人生の間、私は抜け出すことができません適切な応答コード(すべての値は「0」または「エラー」であり、これ以上具体的なものはありません)。

更新:ここでJSFIDDLEを作成しました

更新:statusCode: { *** }3nigmaの提案に従って追加されましたが、起動しません

<!DOCTYPE html><html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    <script type="text/javascript">
        function doAjax()
        {
            $.ajax({
                type: "GET",
                url: "http://www.non-existant-url.com/",
                success: function(data, textStatus, jqXHR){
                    alert("Success");
                },
                error: function (xhr, textStatus, errorThrown) {
                     console.log("xhr.status: " + xhr.status);
                     console.log("xhr.statusText: " + xhr.statusText);
                     console.log("xhr.readyState: " + xhr.readyState);
                     console.log("xhr.responseText: " + xhr.responseText);
                     console.log("xhr.responseXML: " + xhr.responseXML);
                     console.log("textStatus: " + textStatus);
                     console.log("errorThrown: " + errorThrown);
                     console.log("xhr.redirect: " + xhr.redirect);
                        },
                statusCode: {
                    404: function () { console.log("404"); },
                    501: function () { console.log("501"); },
                    502: function () { console.log("502"); }
                }
            });
        }
    </script>
</head>
<body><button onclick="doAjax();">Do AJAX</button></body>
</html>

私が得る出力は次のとおりです。

コンソール出力

参考までに私はでドキュメントを勉強しました...

http://api.jquery.com/jQuery.ajax/ ( "error(jqXHR、textStatus、errorThrown)"セクション) http://api.jquery.com/jQuery.ajax/#jqXHR

しかし、jqXHRは適切に入力されていないようです。私は何か間違ったことをしているに違いありません、そして私は今アイデアを使い果たしたので、私は本当にいくつかの助けをいただければ幸いです。ありがとう!

4

2 に答える 2

3

statusCodejquery1.5で追加されたものを使用してみてください

$.ajax({
  ...
  statusCode: {
    502: function() {
      alert('502');
    }
  }
});
于 2011-10-07T09:25:26.267 に答える
2

私は無愛想です。セキュリティ上の理由から、ajaxはクロスドメインでは機能しません。ホストと同じドメインをターゲットにするようにURLを変更すると、ステータスコードやテキストなどが奇跡的に入力されます。

これを示すために、別のJSFIDDLEの例をここに追加しました。

于 2011-10-07T16:22:45.083 に答える