6

私は次のものを持っています:

 $.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        alert(ajaxContext.responseText)
    }
});

インターネットへの接続が失われると、エラーが呼び出されますが、responseText には何も表示されません。

返された ajaxContent のステータス情報に基づいて、さまざまな種類のエラーを見つける方法はありますか? 「インターネット接続が失われました」というメッセージと、他に問題があれば別のメッセージを出せるようにしたいと思っています。

4

4 に答える 4

2

jQuery ドキュメントによると、エラー関数は 3 つの引数を受け取ります。

  1. jqXHR:
  2. textStatus: 発生したエラーの種類を説明する文字列
  3. errorThrown: オプションの例外オブジェクト (発生した場合)

さらに、次のように述べています。

2 番目の引数 (null 以外) に指定できる値は、"timeout"、"error"、"abort"、および "parsererror" です。HTTP エラーが発生すると、errorThrown は「Not Found」や「Internal Server Error」などの HTTP ステータスのテキスト部分を受け取ります。

そのため、2 番目と 3 番目のパラメーターの内容を確認することをお勧めします。

于 2012-06-07T11:07:33.083 に答える
1
$.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        if(ajaxContext.status=="404")
         {
          //write your not found handler code here
         }
        else
        alert(ajaxContext.status)
    }
});
于 2012-06-07T11:07:22.583 に答える
1

更新しました。

$.ajax({}) 内のどこかに timeout: を追加するだけです。また、cache: false も、いくつかのシナリオで役立つ場合があります。

$.ajax は十分に文書化されています。そこのオプションを確認してください。役に立つものが見つかるかもしれません。

JQuery Ajax - Ajax 呼び出し時にネットワーク接続エラーを検出する方法

于 2012-06-07T11:03:56.143 に答える
0

さまざまな種類の応答結果を意味する場合は、ここにあります - http://api.jquery.com/jQuery.ajax/ - statusCodeパラメータ

于 2012-06-07T11:07:56.500 に答える