2015-10-19 62 views
0

我上传的AJAX异步调用的文件,但如果在我们刷新页面,它就会被中止,文件不会被上传。 有没有什么办法让刷新页面之前完成Ajax调用,或者它在后台完成等待Ajax调用来完成对页面刷新

+0

刷新页面理想地中止ajax请求。 你可以做的是,把一个警告消息在jQuery来确认用户是否要中止我不希望用户得到警报的请求或不 –

回答

0

这两个请求都不会在后台完成,也不能阻止用户关闭或刷新页面。 使用全局JavaScript变量来确定ajax调用是否完成。

var fileUploadComplete = false; 

// executed on completion of last outstanding ajax call. 
$(document).ajaxStop(function() { 
    fileUploadComplete = true; 
}); 

window.onbeforeunload = function (event) { 
    if (fileUploadComplete) { 
     return true; 
    } 
    else { return confirm("Files are being uploaded, Are you sure want to cancel ?"); } 
}; 
+0

,反而是卸载系统等待所有的Ajax调用才把它可能完成? – Diana

+0

我不认为有一种方法,你可以从阿贾克斯得到前关闭所有强制页面。尽管您可以确定ajax是否已完成,并据此进行操作。我已经更新了我的答案。 –