在按下后退按钮时防止 ajax 开机自检



当表单发布(ajax)时,我正在导航到其他页面,在按下后退按钮的同时,表单再次发布。

有没有办法在浏览器中单击后退按钮时停止 ajax 帖子?

我已经使用以下代码停止了以前的请求,但是在此之后,浏览器中禁用了后退和前进按钮。

window.onpopstate = function (e) {}; history.pushState({}, '');

注意:我仅在chromesafari中遇到此问题。

正如这个答案所建议的那样,假设你有这个 ajax 请求

var xhr = $.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston",
  success: function(msg) {
    alert("Data Saved: " + msg);
  }
});
window.onpopstate = function(e) {
  //kill the request
  xhr.abort()
};
history.pushState({}, '');

最新更新