1. ホーム
  2. jquery

jQuery .get エラー応答関数?

2023-07-18 10:56:26

質問

StackOverflowのおかげで、以下のコードを完璧に動作させることができましたが、続きの質問があります。

$.get('http://example.com/page/2/', function(data){ 
  $(data).find('#reviews .card').appendTo('#reviews');
});

上記のコードによって、私のサイトはWordPressのLoad Moreボタンで記事の2ページ目を取得することができました。しかし、サイトがページや結果を使い果たしたとき、小さな問題が発生しました。ロード・モア・ボタンはそのまま残っています。ページが残っていなくても、データをフェッチしようとし続けるのです。

このコマンドを微調整して、もし .get リクエストが失敗した場合、あるいは (404) not found ページであった場合、視覚的な応答を表示するにはどうしたらよいでしょうか?

誰かが私を助けることができれば、簡単な例で、たとえ alert("woops!"); のような簡単な例でも教えていただけると助かります。

ありがとうございます!

どのように解決するのですか?

$.get は、エラーハンドラを設定する機会を与えません。 そのため、低レベルの $.ajax 関数を使う必要があります。

$.ajax({
    url: 'http://example.com/page/2/',
    type: 'GET',
    success: function(data){ 
        $(data).find('#reviews .card').appendTo('#reviews');
    },
    error: function(data) {
        alert('woops!'); //or whatever
    }
});


'10年3月編集

なお、新しい jqXHR を呼び出した後に、エラーハンドラを設定することができます。 $.get :

$.get('http://example.com/page/2/', function(data){ 
    $(data).find('#reviews .card').appendTo('#reviews');
}).fail(function() {
    alert('woops'); // or whatever
});