私は、JavaScript のデバッグを以前よりも難しくしている jQuery の問題を抱えています。jqXHR 遅延関数内のステートメントは、失敗すると黙って失敗します。このエラーをキャプチャする方法が見つかりません。次の例を検討してください。
var xhr = $.ajax({type: "GET",
url: "test.php"});
xhr.done(function() {
a += b;
});
a と b はどちらも未定義です。これはエラーを返すはずですが、代わりにすべての実行が停止し、何かが失敗したことを通知しません。一方、次のように書くとします。
function thisIsAnError() {
a += b;
}
thisIsAnError();
期待どおりに失敗し、Firefox エラー コンソールと Firebug コンソールの両方に「a が定義されていません」というログが記録されます。
Google 検索では何も見つかりませんでした。おそらく、jQuery にエラー処理関数がありませんか? 失敗したのは XHR ではないため、 xhr.fail() はこのエラーをキャプチャしないことに注意してください。