Javascript 在页面刷新时重定向到其他URL
我想发送一个post请求,当用户单击网站中的刷新按钮时,该请求将重定向到另一个urlJavascript 在页面刷新时重定向到其他URL,javascript,jquery,Javascript,Jquery,我想发送一个post请求,当用户单击网站中的刷新按钮时,该请求将重定向到另一个url $(window).on('beforeunload', function(){ console.log(`Page Reloaded`) function redirectPost(url, data,name) { var form = document.createElement('form'); document.body.appendChil
$(window).on('beforeunload', function(){
console.log(`Page Reloaded`)
function redirectPost(url, data,name) {
var form = document.createElement('form');
document.body.appendChild(form);
form.method = 'post';
form.action = url;
var input = document.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = data;
form.appendChild(input);
form.submit();
}
redirectPost("/incompleteOrder",$("#orderNumber").val(),"orderNumber")
});
这段代码应该模拟在页面重新加载期间使用表单发送post请求。在我的后端Nodejs代码中,我有一个post url,它基本上执行一些数据库输入,并重定向到get url,以呈现单击刷新的同一页面
然而,对
/incompleteOrder
的post请求甚至不会在我的后端启动,即使控制台消息显示页面重新加载会闪烁几秒钟。它完全忽略了我的表单提交 改为发送ajax请求怎么样
$(window).on("beforeunload", function () {
$.ajax({
type: 'POST',
url: '/incompleteOrder',
data: {
orderNumber: $("#orderNumber").val()
},
success: function () {
}
})
})
您可能需要在此处
preventDefault
。。为什么要将此事件附加到PreforeUnload,而不是附加到用户应该单击的按钮上?您可能违反了此处的安全规则,即在没有用户以这种方式调用的情况下重定向。通常,您会以这种方式使用对话框提醒用户,并对用户与该对话框的交互执行重定向。出于某种原因,这会触发post路由,然后触发我的get路由。但问题是get路由,因为刷新会在我想要的get路由之前触发。我尝试了e.preventDefault()
,但没有效果