jQueryのメソッドを使用して、ユーザーがボタンをクリックしたときにデータを取得しています。jQueryのload()メソッドでエラーをキャッチする方法
ロードが正常に終了した後、結果は<div>
に表示されます。
データを取得中にload()
にエラーが発生することがあります。
load()
でエラーを検出するにはどうすればよいですか?
jQueryのメソッドを使用して、ユーザーがボタンをクリックしたときにデータを取得しています。jQueryのload()メソッドでエラーをキャッチする方法
ロードが正常に終了した後、結果は<div>
に表示されます。
データを取得中にload()
にエラーが発生することがあります。
load()
でエラーを検出するにはどうすればよいですか?
load()はコールバックを提供します。
コールバック。
ajaxリクエストが完了したときに呼び出される関数です(必ずしも成功するとは限りません)。
これがIIRCの仕組みです。ページ上のすべてのAJAX呼び出しのためのグローバルでのようなグローバル(オラフルWaageが示唆するように、あなたはまた、「グローバル」エラーハンドラを登録することができ、負荷()関数へのコールバックを渡すだけでなく
$("#feeds").load("feeds.php", {limit: 25},
function (responseText, textStatus, XMLHttpRequest) {
// XMLHttpRequest.responseText has the error info you want.
alert(XMLHttpRequest.responseText);
});
を(それをテストしていません) )。
グローバルAjaxのエラーハンドラを登録するには、少なくとも2つの方法があります。
登録がajaxError()
とだけエラーハンドラ:
$.ajaxError(function(event, request, settings) {
alert("Oops!!");
});
か、でエラーハンドラおよびその他のプロパティを設定するためにajaxSetup()
を使用同時に:
$.ajaxSetup({
timeout: 5000,
error: function(event, request, settings){
alert("Oops!");
}
});
...
$("body").load("/someotherpath/feedsx.pxhp", {limit: 25},
function (responseText, textStatus, req) {
if (textStatus == "error") {
return "oh noes!!!!";
}
});
編集:コメントによって要求されたルート・パス以外のパスを追加しました。
ありがとうaltCongnito.itは仕事です! btw、別の関連する質問がありますか? 別の問題はファイルパスです!私はasp.netを使用します。 マスターページにload()コードを書きます。パラメータUrlはfeedsx.aspxに似ています。 コンテンツページがルートフォルダの下にある場合は動作しますが、コンテンツページが他のサブフォルダの下にある場合は動作しません。ヘルプ –
jqueryドキュメントへのリンクありがとうございます。私は彼らが存在することさえ知りませんでした! –
ありがとう - 負荷の失敗は、主にターゲットページを読み込む際の問題によるものです。 – Resh32
電動工具ボックスには、質問にお答えする"Loading content with jQuery AJAX and dealing with failures"という記事があります。
あなたが指定したコールバック関数は、response、status、およびXmlHttpRequestオブジェクトを渡すようになっているため、あなたはajaxリクエストのステータスを判断し、それに応じて条件を処理できます。
関数IS responseTextの最初の引数です。 XMLHttpRequest.responseTextを使用する必要はありません... –