6

AJAXを介してデータを要求および送信するWebアプリがあり、状況に応じて、サーバー側がHTTPステータスコードを送信します。したがって、たとえば、ユーザーがログイン中にログインしようとすると、おそらく。を返します400 HTTP status code。そして最終的にはアラートなどで処理します。

しかし、私はAJAXを多用しているため、これらのHTTPステータスコードの処理は非常に重くなります。つまり、すべてのAJAXリクエストでHTTPステータスコードを繰り返し処理することになり、コードが重複することになります。これは悪い習慣です。

したがって、私が探しているのは、これらすべてのエラーを1つの場所で処理する方法です。したがって、すべて400401、などを同じコードで処理するだけです。

私が現在していること:

AJAX呼び出しごとに手動でエラーを処理します。を使用しstatusCode$.ajax()

  statusCode: {
        500: function(data) {
            alert('Some friendly error message goes here.');
        }

私のWebアプリが開発され、より多くのajax呼び出しを作成するにつれて、それは私にとってやり過ぎのように思えます。このコードを何度も繰り返します。

現在、私が考えている唯一のアイデアは、AJAX上で機能する関数を作成することです。

    function doAjax(type,url, data, moreVars) {
//this function is just a SIMPLE example, could be more complex and flexible.
        $.ajax({
            type: type,
            url: url,
            data: data,
            moreOptions:moreVars,
            //now handling all status code.
            statusCode: {
                //handle all HTTP errors from one place.
            }
        });
    }

    doAjax("POST", 'mydomain.com/login.php', dataObj);
4

1 に答える 1

12

を使用$.ajaxSetup()して、グローバルエラー状態ハンドラーを登録できます。

説明:将来のAjaxリクエストのデフォルト値を設定します。

例:

$.ajaxSetup({
    statusCode: {
        500: function(data) {
            alert('Some friendly error message goes here.');
        } 
    }   
});
于 2012-07-29T00:15:16.540 に答える