在执行AJAX成功后,我似乎无法重定向到新页面(这是在jQuery Mobile的脚本中)。在以下代码中,如果我执行除重定向之外的其他功能,则会按预期设置sessionStorage。执行重定向时,不会执行sessionStorage代码。建议??
$("#register").click(function () {
var formData = $("#registerUser").serialize();
$.ajax({
type: "POST",
url: "file.php",
//dataType:'json',
cache: false,
data: formData,
//success: onSuccess,
success: function (data) {
if (data.status == 'success') {
//execute some code here
var someValue = (data.id);
sessionStorage.setItem('someValue', someValue);
} else if (data.status == 'error') $("#notification").text(data.message);
},
complete: function () {
window.location.replace('newPage.html');
}
});
return false;
});
答案 0 :(得分:1)
您的成功和完成是相互矛盾的。两者都会在完成时执行。一个人会重定向。移动重定向代码成功,使其在执行其他操作后重定向。
success: function (data) {
if (data.status == 'success') {
//execute some code here
var someValue = (data.id);
sessionStorage.setItem('someValue', someValue);
// redirect after success
window.location.replace('newPage.html');
} else if (data.status == 'error') {
$("#notification").text(data.message);
}
}
答案 1 :(得分:-1)
自己想出这个 - 你必须使用JQM重定向:$.mobile.changePage('newPage.html');
success: function (data) {
if (data.status == 'success') {
//execute some code here
var someValue = (data.id);
sessionStorage.setItem('someValue', someValue);
// redirect after success
$.mobile.changePage('newPage.html');
} else if (data.status == 'error') {
$("#notification").text(data.message);
}
}