这是我的代码:
$.ajax( {
type: "POST",
url: "/script.php",
data: { "action" : "importData" },
cache: false,
async: true,
success: function() {
window.location.href = "/next-page";
}
} );
当用户登陆此页面时,ajax将触发php脚本,大约需要15秒才能完成。我没有让用户等待脚本完成然后重定向,而是希望获得某种类型的确认,即脚本已被触发,然后重定向用户而不等待整个脚本完成。脚本的结果直到工作流程后几分钟才会被使用。
这可能吗?怎么做?
答案 0 :(得分:0)
$.ajax()
返回XMLHttpRequest
个实例:
var xhr = $.ajax({
type: 'POST',
url: '/script.php',
data: {action: 'importData'},
cache: false,
success: function(){
location = '/next-page';
}
});
/* to test if problem is jQuery remove this line and take comments out
var px = xhr.onreadystatechange;
*/
xhr.onreadystatechange = function(){
//if(px)px();
if(xhr.readyState === 3 && xhr.status === 200){ // look at Properties -> https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
// do stuff here with xhr.readyState less than 4
}
}
可以找到有效的XMLHttpRequest.readyState
属性值here。
请注意,如果您重定向用户,则会停止当前页面上的JavaScript。您的用户重定向到的页面可能拥有自己的JavaScript。