当表单发布(ajax)时,我正在导航到其他页面,在按下后退按钮的同时,表单再次发布。
有没有办法在浏览器中单击后退按钮时停止 ajax 帖子?
我已经使用以下代码停止了以前的请求,但是在此之后,浏览器中禁用了后退和前进按钮。
window.onpopstate = function (e) {}; history.pushState({}, '');
注意:我仅在chrome
和safari
中遇到此问题。
正如这个答案所建议的那样,假设你有这个 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({}, '');