我试图在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!!");
}
})
答案 0 :(得分:13)
你可以做一个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!!");
}
})