1

私は、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() はこのエラーをキャプチャしないことに注意してください。

4

2 に答える 2

0

使用$.get()している関数にはdone()メソッドがありません。関数をアタッチしたいのはsuccess()メソッドだと思います。動作するjsFiddleの例。

http://api.jquery.com/jQuery.get/

http://api.jquery.com/jQuery.get/#jqxhr-object

于 2011-08-02T18:19:34.750 に答える
0

js をデバッグする 1 つの方法 (および imo が最適な方法) は、chrome 拡張機能の firefox である firebug を使用することです。Firefox には chrome 拡張機能よりも高度なプラグインがありますが、どちらも機能します。

ああ、.fail()うまくいきません、あなたが探しているのは.error()

于 2011-08-02T18:15:03.943 に答える