如果我发送一些ajax请求,并在请求返回之前立即更改页面(比如说一些链接)会发生什么?我的意思是说,XHR对象向网站发送一个请求,但是在检索到响应之前,它会被删除(因为页面被更改),所以应该将响应发送到哪里?
我问这个问题是因为我的网站有一个奇怪的问题.我有一个页面,通过Ajax请求从数据存储中加载帖子.如果在加载完成之前,我点击一个链接,我得到了jQuery.ajax的onerror称为!不知道为什么会这样.
编辑:这是我给ajax的电话.在正常情况下,成功回调被调用.但是当我点击链接时,错误回调被调用!我正在考虑一些事情,可能是因为数据应该被格式化为JSON,但请求在中间被剪切,所以数据被认为是无效的,导致jQuery调用错误回调?但是为什么要求在中间被削减?
$.ajax({ type: (args.rel == "async" || args.rel == "dialog") ? "GET" : "POST",url: href,dataType: "json",data: args.data ? args.data:{},// send {} to ensure Content-Length header success: function(data){ if (context) context.removeClass("ajax_wait"); if (args.hideonwait) $(args.hideonwait).show(); if (args.showonwait) $(args.showonwait).hide(); if (spinner) remove_spinner(context,spinner); handle_response(args,context,target,data); },error: function(xhr,status,errorThrown){ if (context) context.removeClass("ajax_wait"); if (args.hideonwait) $(args.hideonwait).show(); if (args.showonwait) $(args.showonwait).hide(); if (spinner) remove_spinner(context,spinner); ajax_error(args,status + "-" + xhr.status,errorThrown ? errorThrown : xhr.responseText); } });