我可以问一下有关SPA的一些概念吗?我使用SPA开发了客户端网页。在菜单A中单击它会请求一些Ajax调用并等待响应。在这段时间内,如果我转到另一页B,则A的ajax响应到来,它正在尝试调用已加载的javascript代码,因为浏览器未在SPA中执行刷新。如何避免这种情况并忽略之前所有A的ajax响应?
$.ajax({
url: url,
type: "GET",
dataType: "json",
headers: {"Authorization": 'Token ' + myToken},
success: function(response) {
my_callback(response); // <== I want to block this if leaves current page...
},
error: function(response) {
},
complete: function(response) {
}
});
您可以abort该请求。
XMLHttpRequest.abort()方法中止请求,如果它已经发送过。当请求中止时,其readyState更改为XMLHttpRequest.UNSENT(0),并且请求的状态码设置为0。
var xhr = $.ajax({
url: url,
type: "GET",
dataType: "json",
headers: { "Authorization": 'Token ' + myToken },
success: function (response) {
my_callback(response); // <== I want to block this if leaves current page...
},
error: function (response) {
},
complete: function (response) {
}
});
if(pageNavigates){
xhr.abort();
}