Javascript 在页面刷新时重定向到其他URL

Javascript 在页面刷新时重定向到其他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

我想发送一个post请求,当用户单击网站中的刷新按钮时,该请求将重定向到另一个url

 $(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()
,但没有效果