在我的网页(构建在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')}
});
当我点击离开页面(到新页面)时,如何防止警报发生?
定义一个全局变量:
var ajaxcancel = false;
不,如果用户关闭窗口,则需要制作true
:
$(window).bind("beforeunload", function() {
ajaxcancel = true;
});
并更改ajax错误行以首先检查该变量的值:
...
error: function() {if (!ajaxcancel) alert('error'); }
...
您不能取消已发送的AJAX请求,但您可以做的(我认为这可能适用于您的情况)是在离开发出请求的页面时,您可以发出另一个AJAX请求来取消由初始AJAX请求启动的上一个操作。如果您提出的AJAX请求在服务器端启动了一些昂贵的报告、数据库或算法操作,这可能会对您的情况有所帮助。
至少你可以让服务器知道不要浪费更多的资源,因为用户已经离开了。