0
私はasync:falseを使用していて、すべて正常に機能する前に、ループ上で次々と実行される2つの異なるajaxポストメソッドを持っています償却され、エラーがスローされます。私のループの中に同期してメソッドを実行できるように、代替メソッドがありますか?私は自分の関数でそれぞれをラップし、.done()を使って呼び出すことを試みましたが、これはループ内に自分の投稿を保持します。あなたのpostloop()
に配列を渡すに基づいて再帰的約束チェーンを構築ループ内での同期ajaxポスト
function postLoop() {
len = 3
backorderPayLoad = []
cancelPayLoad = []
for (var i = 0; i < len; i++) {
backorder = {
"quantity": 20,
"note": "Backorder",
}
cancel = {
"quantity": 20,
"note": "Cancel",
}
backorderPayLoad.push(backorder);
cancelPayLoad.push(cancel);
$.ajax({
url: myurl,
method: 'POST',
contentType: : "application/json",
async: false,
data: JSON.stringify(backorderPayLoad[i]),
beforeSend: function(xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
})
$.ajax({
url: myurl2,
method: 'POST',
contentType: : "application/json",
async: false,
data: JSON.stringify(cancelPayLoad[i]),
beforeSend: function(xhr, settings)
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
})
}
}
AJAXは**非同期** JavaScriptとXMLの略で、なぜ代替があるはず? –
実際にあなたのコードに何が間違っていますか? –
async:falseが償却されるようになりました。私は次のものが始まる前に完了するために各投稿が必要です – user2168066