JQuery AJAXの呼び出し後にページを更新しようとしています。すべてのデータが送信される前にページが更新される(たまにのみ)と思われます。以下のスニペットで理由を誰かが確認できます。成功関数に更新コードがあるので混乱しています。
追加してみましたasync = false
そしてそれはうまくいかなかったようです。
function sendRating(rating, reload_on_return) {
$.ajax({
type: "POST",
dataType: 'json',
url: window.url_root + cid + "/",
data: {
"rating": rating.r2 / 100.0
},
success: function(data) {
if (data.hasOwnProperty('success')) {
console.log("data was sent!");
if (reload_on_return) {
location.reload();
}
}
},
error: function() {
console.log("Data didn't get sent!!");
}
})
SetTimeoutを実行して、更新を実行する前に一瞬待つこともできます。
function sendRating(rating, reload_on_return) {
$.ajax({
type: "POST",
dataType: 'json',
url: window.url_root + cid + "/",
async: false,
data: {
"rating": rating.r2 / 100.0
},
success: function(data) {
if (data.hasOwnProperty('success')) {
console.log("data was sent!");
if (reload_on_return) {
setTimeout(
function()
{
location.reload();
}, 0001);
}
}
},
error: function() {
console.log("Data didn't get sent!!");
}
})