在我的网页(基于Django平台)中,我有一些jQuery通过ajax请求请求服务器数据。如何在ajax请求响应之前单击离开页面时,如何防止错误函数执行。
这是我的jQuery调用:
$(document).ready(function() {
$.ajax( {
url:'/server/url/',
type: 'POST',
data: {some..data},
success:function(response) { do stuff with response },
error: function() {alert('error')}
});
当我点击页面(到新页面)时,如何防止警报发生?
答案 0 :(得分:1)
定义全局变量:
var ajaxcancel = false;
如果用户关闭窗口,则不需要设置true
:
$(window).bind("beforeunload", function() {
ajaxcancel = true;
});
并更改ajax错误行以首先检查该变量的值:
...
error: function() {if (!ajaxcancel) alert('error'); }
...
答案 1 :(得分:-1)
您无法取消已发送的AJAX请求,但您可以执行的操作(因为我认为这可能适用于您的情况)是在离开发出请求的页面时,您可以再次发出取消之前操作的AJAX请求通过最初的AJAX请求。如果你所做的AJAX请求开始在服务器端进行一些昂贵的报告或数据库或算法操作,这可能会有所帮助。
至少你可以让服务器知道不要浪费任何更多的资源,因为用户已经开始了。