javascript - 如何在页面刷新时中止 ajax 请求
问题描述
我有一个表单,在提交时我正在发出一个 ajax 请求,有时需要时间来获取请求,所以我想要做的是每当form submitting
我想中止该 ajax后用户刷新或点击浏览器的后退按钮称呼
我正在做的是
$("#formId").submit(function(event) { event.preventDefault(); var xhr = $.ajax({ url : "Drilldown", method : "GET", success : function(data) { // here doing ,my stuff }, complete : function() { $('.loader').hide(); $('.overlay').hide(); } }); window.onbeforeunload = function() { return "some message"; // here when user clicks on leave then want to abort like `xhr.abort` }; });
每当用户单击请假时,我想中止我的 ajax 请求
我怎样才能做到这一点?
**我特别想在提交表单和提交表单时这样做,我也想中止该功能onbeforeunload
**
解决方案
您可以直接在“onbeforeunload”事件处理方法中使用 xhr.abort():
// Define xhr variable outside so all functions can have access to it
var xhr = null;
$("#formId").submit(function(event) {
event.preventDefault();
xhr = $.ajax({
url: "Drilldown",
method: "GET",
success: function(data) {
// here doing ,my stuff
},
complete: function() {
$('.loader').hide();
$('.overlay').hide();
}
});
});
window.onbeforeunload = onUnload;
function onUnload() {
if(xhr) xhr.abort();
return "some message";
};
推荐阅读
- checkbox - 如何在ionic 3中使用复选框删除多个项目
- r - R中的sqldf生成错误
- uwp - Windows 10 UWP - 如何查询墨水设备的采样率?
- google-apps-script - 用于创建受保护的新工作表的脚本(Google 工作表)
- javascript - 角度忽略我的路由视图控制器
- c - C - 循环,输入未正确读取,仅打印出“不匹配”
- angular - Angular 4/5 的 Kendo Grid 将模糊事件绑定到行/网格
- python - 如何在 x 秒后对 Python 的输入强制“输入”?
- css - 从 GoCentral 博客中删除日期
- python - Python 过滤 *args **kwargs 中的参数