56

.load()ユーザーがボタンをクリックしたときに、jQuery のメソッドを使用してデータを取得しています。

ロードが正常に終了したら、結果を<div>.

load()問題は、データの取得中にエラーが発生する場合があることです。

でエラーをキャッチするにはどうすればよいload()ですか?

4

4 に答える 4

88

load() ドキュメント。

ロードエラーがどのように発生するかについてのほんの少しの背景...

$("body").load("/someotherpath/feedsx.pxhp", {limit: 25}, 
    function (responseText, textStatus, req) {
        if (textStatus == "error") {
          return "oh noes!!!!";
        }
});

編集:コメントで要求されたルートパス以外のパスを追加しました。

于 2009-04-15T19:35:20.623 に答える
13

Ólafur Waage が示唆するように load() 関数にコールバックを渡すだけでなく、「グローバル」エラー ハンドラを登録することもできます (ページ上のすべての ajax 呼び出しに対してグローバルのようにグローバル)。

グローバル Ajax エラー ハンドラーを登録するには、少なくとも 2 つの方法があります。

エラーハンドラーのみを登録しますajaxError()

$.ajaxError(function(event, request, settings) {
      alert("Oops!!");
});

または、ajaxSetup()エラー ハンドラとその他のプロパティを同時に設定するために使用します。

$.ajaxSetup({
    timeout: 5000,
    error: function(event, request, settings){
        alert("Oops!");
    }
});
于 2009-04-15T19:34:28.380 に答える
6

load()はコールバックを提供します。

折り返し電話。
ajaxリクエストが完了したときに呼び出される関数(必ずしも成功するとは限りません)。

これがIIRCのやり方です。(テストしていません)

$("#feeds").load("feeds.php", {limit: 25}, 
    function (responseText, textStatus, XMLHttpRequest) {
        // XMLHttpRequest.responseText has the error info you want.
        alert(XMLHttpRequest.responseText);
});
于 2009-04-15T19:27:08.910 に答える
0

Electric toolbox には、「jQuery AJAX を使用してコンテンツをロードし、失敗に対処する」という記事があり、あなたの質問に答えているようです。

指定したコールバック関数には、応答、ステータス、および XmlHttpRequest オブジェクトが渡されるようです。これにより、ajax リクエストのステータスを判断し、それに応じて条件を処理できます。

于 2009-04-15T19:37:05.360 に答える