10

私が理解している限り、ajax でエラー結果を処理する 1 つの可能性は次のとおりです。

$.ajax({
    url: someUrl,
    type: 'POST',
    success: function(data) {},
    error: function(jqXHR, exception) {
        if (jqXHR.status === 0) {
            alert('Not connect.\n Verify Network.');
        } else if (jqXHR.status == 404) {
            alert('Requested page not found. [404]');
        } else if (jqXHR.status == 500) {
            alert('Internal Server Error [500].');
        } else if (exception === 'parsererror') {
            alert('Requested JSON parse failed.');
        } else if (exception === 'timeout') {
            alert('Time out error.');
        } else if (exception === 'abort') {
            alert('Ajax request aborted.');
        } else {
            alert('Uncaught Error.\n' + jqXHR.responseText);
        }
    }
});

またはstatusCode、読みやすくするために使用します。

$.ajax({
    url: someUrl,
    type: 'POST',
    statusCode: {
        200: function(data) {
                   :
                   :
             },
        401: function() {
                   :
                   :
             },
              :
              :

私の質問は次のとおりです。デフォルトのフォールスルーを
使用して使用することは可能ですか?statusCode

4

1 に答える 1

20

statusCode パラメータにはありません。しかし、それは、すべてをキャッチしたい場合は、より良い (そして無駄のない) 方法だからです。

complete: function(jqXHR, textStatus) {
    switch (jqXHR.status) {
        case 200:
            alert("200 received! yay!");
            break;
        case 404:
            alert("404 received! boo!");
            break;
        default:
            alert("I don't know what I just got but it ain't good!");
    }
}
于 2012-07-26T23:53:01.300 に答える