#jquery #ajax #refresh
#jquery #ajax #обновить
Вопрос:
Я использую это для обновления / перезагрузки страницы после завершения ajax.
$(".method").click( function() {
if (confirm('Do : ' $(this).attr('method') ' ?')) {
$.ajax({ url : 'go.php?method=' $(this).attr('method'),
success: function(){
setTimeout(function(){
window.location = "?method=view";
}, 100);
}
});
}
return false;
});
Иногда это срабатывает, и страница обновляется, в других случаях часть ajax работает, но страница не обновляется.
go.php всегда вызывается и выполняется корректно.
Есть ли способ заставить ее работать постоянно?
Спасибо
Ответ №1:
Я полагаю, что во время процесса ajax возникает ошибка. Go.php будет вызываться всегда, но ответ браузера, очевидно, может отличаться. Вы можете указать функцию ОШИБКИ и выполнить то же самое, что и при успешном выполнении, но вместо этого, вероятно, захотите отобразить сообщение об ошибке.
$(".method").click( function() {
if (confirm('Do : ' $(this).attr('method') ' ?')) {
$.ajax({ url : 'go.php?method=' $(this).attr('method'),
success: function(){
setTimeout(function(){
window.location = "?method=view";
}, 100);
},
error: function(){
setTimeout(function(){
window.location = "?method=view";
}, 100);
}
});
}
return false;
});
В качестве альтернативы, если вас не волнует успех или ошибка, вы можете использовать complete, который сделает то же самое для обоих.
$(".method").click( function() {
if (confirm('Do : ' $(this).attr('method') ' ?')) {
$.ajax({ url : 'go.php?method=' $(this).attr('method'),
complete: function(){
setTimeout(function(){
window.location = "?method=view";
}, 100);
}
});
}
return false;
});
Ответ №2:
попробуйте использовать этот код:
$(".method").click( function() {
if (confirm('Do : ' $(this).attr('method') ' ?')) {
$.ajax({
url : 'go.php?method=' $(this).attr('method'),
success: function(){
},
complete: function() {
setTimeout(function(){
window.location.href = "?method=view";
}, 100);
}
});
}
return false;
});
ссылка: https://api.jquery.com/jQuery.ajax / ( complete
раздел)
Комментарии:
1. Я попробовал это, и у меня все еще была та же проблема. Я проверю еще раз и сообщу об этом.