2017-04-24 3 views
-1

が、私は次のjQueryを使用した例を持って動作しません。ここで何が起きてるの?javascriptのキャッチが

+0

'$ .post'が非同期です。それは同期的にエラーをスローしません。 – Xufox

+0

は実行中の 'try'のコードですか? – gabe3886

+0

非同期コールバック関数が実行されるまでに、フローは 'try'ブロックを離れてからずっと長いです。 '$ .post()'それ自体は例外をスローしません。 – David

答えて

2

例外は非同期にスローされるため、例外は捕捉されません。

これに対処するための正しい方法は

$.post(url,data, function(response){ 
    throw 'Exception'; 
}).catch(function(ex){ 
    alert('Error'); 
}); 
+0

ありがとう、ありがとうございます。 – CStff

+0

これはjquery 3.0以降が必要です。 – CStff

+0

@CStff他の方法では、3.0以降は '.fail(func)'です。 jqXHR.done()、jqXHR.fail()およびjqXHR.always()を使用すると、jqXHR.success()、jqXHR.error()およびjqXHR.complete()コールバックメソッドがjQuery 3.0から削除されます。代わりにhttps://api.jquery.com/jquery.post/から) – Jamiec

関連する問題