ajax请求发送不出去

T1639660282 2020-07-26 04:22:35
因为公司业务需要,需要在用户关闭当前浏览器页面的时候把用户修改的数据进行更新。 我使用的是onbeforeunload,在两个页面上使用了同一个监听事件,但是只有一个页面能起作用。不起作用的页面能够进入ajax方法中,但是请求发送不到后台,参数和路径都没有问题,用其他方法调用是正常的,换个浏览器来打开这个页面就可以发送请求到后台。求大神指点 //关闭当前页面保存修改的数据 window.onbeforeunload = onbeforeunload_handler; //window.onunload = onunload_handler; function onbeforeunload_handler(){ debugger; cui("#deviceList-table").submit(); } //更新方法 window.submitTechData = function (editableGridObj, changeData) { debugger; var allDate = {}; // 更新数据 if (changeData.updateData && changeData.updateData.length > 0) { allDate = changeData.updateData; } cui.handleMask.show(); // 数据操作 if (allDate && allDate != '') { jQuery.ajax({ url: "#URL()/...", type: "POST", data: JSON.stringify(allDate), dataType:"json", async: false, contentType:"application/json", success: function(data) { cui.handleMask.hide(); if(data > 0) { cui.message("操作成功", "success"); }else { cui.message("操作失败", "error"); } editableGridObj.submitComplete(); } }); }; }
...全文
2368 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiy20151018b 2020-08-10
  • 打赏
  • 举报
回复
需要在onbeforeunload中的ajax回调函数中用return返回一个空的字符串
猫猫猫猫猫? 2020-07-26
  • 打赏
  • 举报
回复
如果你写的是单页面应用 要用 window.addEventListener("beforeunload", myScript); 这种方法添加监听。 你两个地方都用了 window.onbeforeunload = myScript 这样的写法, window 是全局对象,不同的路由用的也是同一个 window。 window.onbeforeunload 是一个变量,只能赋一个值,后面添加的自然会把前面的给覆盖掉。 而 window.addEventListener("beforeunload", myScript); 这种方法是可以同时添加多个同种监听的,不会有覆盖的问题 还有添加了监听记得把监听去除掉 window.removeEventListener("beforeunload", myScript);

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧