【发布时间】:2020-02-20 07:07:12
【问题描述】:
我想发送一个帖子请求,当用户单击网站中的刷新按钮时,该请求又将重定向到不同的网址
$(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")
});
此代码应模拟在页面重新加载期间使用表单发送发布请求。在我的后端 Nodejs 代码中,我有一个 post url,它基本上执行一些数据库输入并重定向到 get url 以呈现单击刷新的同一页面。
但是,即使显示页面重新加载的控制台消息闪烁了几秒钟,对/incompleteOrder 的发布请求甚至都不会在我的后端触发。它完全忽略了我的表单提交。
【问题讨论】:
-
您可能需要在这里
preventDefault.. 为什么将此事件附加到 beforeunload 而不是用户应该单击的按钮上?您可能会通过重定向而违反安全规则,而无需用户以这种方式调用它。通常,您会以这种方式通过对话框提醒用户,并在用户与该对话框的交互时执行重定向。
标签: javascript jquery