Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当请求已发布但响应尚未到来时,如何防止刷新浏览器窗口?_Javascript_Html_Forms_Page Refresh_Post Redirect Get - Fatal编程技术网

Javascript 当请求已发布但响应尚未到来时,如何防止刷新浏览器窗口?

Javascript 当请求已发布但响应尚未到来时,如何防止刷新浏览器窗口?,javascript,html,forms,page-refresh,post-redirect-get,Javascript,Html,Forms,Page Refresh,Post Redirect Get,假设我有一个HTML表单和一个提交按钮。单击submit按钮时,我向服务器提交post请求以进行处理 在服务器处理请求时,如何防止刷新页面。请注意,服务器尚未返回任何响应,微调器仍在浏览器中旋转。这是我希望禁用刷新的时间,因为当前请求仍在处理中 我已经实现了POST/REDIRECT/GET,但问题是,即使在服务器重定向之前,如果请求仍在处理中,那么我想禁用刷新,直到服务器重定向请求。您需要使用event.preventDefault()来阻止页面刷新 <form action="#" m

假设我有一个HTML表单和一个提交按钮。单击submit按钮时,我向服务器提交post请求以进行处理

在服务器处理请求时,如何防止刷新页面。请注意,服务器尚未返回任何响应,微调器仍在浏览器中旋转。这是我希望禁用刷新的时间,因为当前请求仍在处理中


我已经实现了POST/REDIRECT/GET,但问题是,即使在服务器重定向之前,如果请求仍在处理中,那么我想禁用刷新,直到服务器重定向请求。

您需要使用event.preventDefault()来阻止页面刷新

<form action="#" method="post" onsubmit="return ValidationEvent()">
...
...
<script>
function ValidationEvent(event) {
event.preventDefault(); //prevent refresh of page

// your ajax api call here
}
</script>

...
...
函数ValidationEvent(事件){
event.preventDefault();//防止刷新页面
//这里是您的ajax api调用
}

也许您可以在这里找到一个解决方案:恐怕您无法100%阻止此用户操作。浏览器应显示一个对话框,询问用户是否确实要再次提交表单数据,如果用户确认,浏览器将再次发送整个POST请求。防止这种情况的唯一方法是被动地在后端。为什么不使用javascript重定向的ajax请求呢?但是表单根本没有提交,并且内联事件的处理是关闭的(事件对象不会自动传递)。您说您正在使用submit button提交表单。OP说,是的。。。但是您的代码阻止表单提交。提交事件的默认操作是。。。提交表单,而不是刷新页面。您需要使用ajax进行API调用以提交表单。