スクリプトの読み込みに時間がかかっている間に ajax エラー関数が呼び出されるという問題がいくつかあります。しかし、追加することで修正できましたasync: false
。
例えば:
$.ajax({
type: 'POST',
url: REQUEST_URL,
async: false,
data: {
'id': id
},
dataType: 'json',
success: function(output) {
// success
},
error: function() {
alert('Error, please refresh the page');
}
});
ドキュメントを読むと、次のように書かれています。
デフォルトでは、すべてのリクエストは非同期で送信されます (つまり、これはデフォルトで true に設定されています)。同期リクエストが必要な場合は、このオプションを false に設定します。クロスドメイン リクエストと dataType: "jsonp" リクエストは、同期操作をサポートしていません。同期リクエストはブラウザを一時的にロックし、リクエストがアクティブな間はすべてのアクションを無効にする場合があることに注意してください。jQuery 1.8 以降、jqXHR ($.Deferred) で async: false を使用することは推奨されなくなりました。完全/成功/エラーのコールバックを使用する必要があります。
Q) jqXHR ($.Deferred) の最後の部分はどういう意味ですか? これは私のスクリプトに影響しますか?