form post表单提交 点击提交跳转到下一个页面!再点击浏览器的后退 浏览器就会报确认重新提交表单!这个问题有朋友遇到过吗!如何解决
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

ERR_CACHE_MISS 确认重新提交表单
- ¥20
- javascript
收起
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
当前问题酬金
¥ 20 (您已提供 ¥ 20, 还可追加 ¥ 480)
支付方式
扫码支付
16条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
获得0.60元问题酬金 要么你就防止后退是,当用户点击浏览器的后退按钮会导致页面状态异常或者数据异常的情况。
使用location.replace方法。在进行页面跳转时,可以使用location.replace方法代替location.href或者location.assign方法,实现跳转后无法后退的效果。<script> $(function () { //禁用“确认重新提交表单” window.history.replaceState(null, null, window.location.href); }) </script>
这种是非常常见的手法
或者使用history API。在页面跳转时,可以使用history API(如pushState、replaceState等方法)实现页面状态的修改,避免页面状态异常。要么你这样做:
在提交页面你生成一个token,提交的时候携带上这个token,当服务器处理完之后这个token就失效了, 那么当回退后重复提交的就不会在被服务器处理了
这两种都可以的本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报 编辑记录微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
Leodong. 2023-09-27 16:48关注获得0.60元问题酬金 该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
这个问题是因为浏览器的缓存导致的。当你点击提交按钮后,页面会跳转到下一个页面,但是浏览器仍然会从缓存中加载这个页面,所以当你点击后退时,浏览器会提示你确认是否重新提交表单。解决方法是在表单提交时,添加一个随机参数或者时间戳,这样每次提交时都会生成一个新的URL,浏览器就不会使用缓存的页面了。具体操作如下:- 在表单的
action
属性中,添加一个随机参数或者时间戳。例如:<form action="your_page.php?random_param=<?php echo time(); ?>" method="post">
- 在服务器端(这里是PHP),获取这个随机参数或者时间戳,然后拼接真正的URL。例如:
$random_param = $_GET['random_param']; $real_url = "your_page.php?param=" . $random_param;
- 使用
header()
函数设置正确的HTTP头,以便浏览器不会从缓存中加载页面。例如:
这样,每次提交表单时,都会生成一个新的URL,浏览器就不会使用缓存的页面了。header("Location: " . $real_url); exit;
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报 编辑记录微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
专家-赤兔[在线] 2023-09-27 16:49关注获得0.60元问题酬金 引自免费微信小程序-皆我百晓生,希望对题主有所帮助,如有帮助,还望采纳。
ERR_CACHE_MISS错误是由于浏览器缓存问题造成的。浏览器会缓存POST请求的结果,并在用户后退时尝试重新提交。然而,如果服务器端已经处理了POST请求,再次提交就会导致重复操作。
为了解决这个问题,你可以采取以下几种方法之一:
使用PRG模式(Post/Redirect/Get):在用户提交表单后,将其重定向到另一个页面,而不是直接跳转到下一个页面。这样,在用户后退时,浏览器会重新发送GET请求而不会重复提交POST请求。
禁用浏览器缓存:可以通过在服务器响应头中添加适当的缓存控制头来禁用浏览器缓存。例如,在服务器端的响应中添加以下HTTP头:
Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0
这样浏览器将不会缓存该页面,当用户返回后将重新请求最新数据。
使用ajax提交表单:使用ajax异步提交表单,而不是直接提交表单。这样,在用户后退时,浏览器不会尝试重新提交表单,避免了ERR_CACHE_MISS错误的发生。
例如,使用jQuery的ajax方法提交表单:
$.ajax({ url: 'submit_form.php', type: 'POST', data: $('#myForm').serialize(), success: function(response) { // 处理成功响应 // 跳转到下一个页面 window.location.href = 'next_page.html'; } });
以上是一些常见的解决方法,根据具体情况选择合适的方法来解决ERR_CACHE_MISS错误。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
程序员Ale-阿乐 2023-09-27 16:56关注获得0.40元问题酬金 遇到浏览器报“确认重新提交表单”的问题通常是因为浏览器认为您在刷新或后退时尝试重新提交之前的表单数据。这是浏览器的一种安全特性,旨在防止无意中重复提交表单。要解决这个问题,您可以考虑以下几种方法:
- 使用重定向: 在表单提交后,服务器可以重定向到另一个页面,而不是直接返回表单提交结果。这样,当用户后退时,他们将返回到不包含表单提交的页面。
- 使用POST-REDIRECT-GET模式(PRG模式): 这是一种常见的模式,用于避免表单重复提交问题。在提交表单后,服务器将用户重定向到另一个页面,然后用户可以安全地后退,因为表单提交已经完成,不会再次提交。
- 禁用表单重复提交检测: 这不是一种推荐的方法,因为它牺牲了一定的安全性。但如果您确信您的应用程序没有问题,您可以尝试禁用浏览器的表单重复提交检测。但请谨慎使用这个方法,因为它可能会导致一些安全风险。
- 使用JavaScript重定向: 在表单提交后,您可以使用JavaScript来重定向到另一个页面,这也可以防止后退时的表单重新提交问题。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
桂圆肉肉 2023-09-27 17:00关注执行:window.history.replaceState(null, null, window.location.href);
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
玥轩_521 2023-09-27 17:47关注获得0.60元问题酬金 援引通义千问:
在JavaScript中,当你提交一个表单时,浏览器会保存这个表单的提交信息。如果你点击浏览器的后退按钮,然后再次提交这个表单,浏览器会发现这个表单的提交信息已经被保存,因此它会提示你确认是否重新提交表单。
解决这个问题的一种方法是删除表单的提交信息。你可以使用JavaScript的delete
关键字来删除表单的提交信息。例如,你可以将以下代码添加到你的JavaScript代码中:document.querySelector('form').reset();
这段代码会删除表单的所有提交信息,并将表单重置为初始状态。这样,当你再次提交这个表单时,浏览器就不会提示你确认是否重新提交表单了。
注意,这种方法可能会导致一些问题。例如,如果你在表单中输入了一些信息,并且删除了表单的提交信息,那么这些信息将会丢失。因此,在使用这种方法时,你需要确保它不会导致信息丢失。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
心梓知识 2023-09-27 18:08关注获得0.60元问题酬金 结合GPT给出回答如下请题主参考
这个错误通常是在浏览器缓存中找不到表单数据时触发的。可能的原因是表单提交后页面被重新加载或重定向,浏览器缓存中的表单数据被清除,导致后退时无法重复提交表单。要解决这个问题,有以下几个建议:
- 禁用缓存:在表单提交的页面添加以下代码,禁用浏览器的缓存,确保每次表单提交后,页面都会被重新加载。
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="0">
- 使用重定向:在表单提交后,可以使用重定向而不是直接加载下一个页面。这将确保在后退时不会重复提交表单。
header("Location: nextpage.php");
- 避免重新加载:在使用 AJAX 或 JavaScript 提交表单时,可以避免页面被重新加载。这将确保提交表单后页面仍然保持原样,避免浏览器缓存被清除的问题。
$.ajax({ type: "POST", url: "submit-form.php", data: formData, success: function(response) { // handle response } });
以上是几种解决方案,您可以根据具体情况选择适合的方法。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
获得0.60元问题酬金 这个问题通常是因为提交表单后没有使用重定向(redirect)到下一个页面,而是直接渲染了下一个页面,这样当用户点击浏览器的后退按钮时,浏览器会尝试重新提交表单,导致该错误出现。要解决这个问题,可以使用重定向到下一个页面,这样当用户点击浏览器的后退按钮时,浏览器只是重新加载上一个页面,而不会重新提交表单。在代码中,您可以在表单处理完毕后使用重定向到下一个页面,例如:
return redirect('/nextpage');
其中,
/nextpage
是您要重定向到的下一个页面的 URL。这样就可以避免出现确认重新提交表单的错误了。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
数据大魔王 2023-09-27 22:00关注获得0.80元问题酬金 这是一个常见的问题。
使用重定向:在表单提交后,将用户重定向到下一个页面,而不是将用户停留在提交的页面上。这样在用户点击后退按钮时,浏览器会返回到上一个页面而不会尝试重新提交表单。
使用Post/Redirect/Get(PRG)模式:这种模式通过在表单提交后的处理程序中进行重定向来解决问题。表单提交后,将用户重定向到下一个页面,并使用GET方法加载下一个页面。这样,在用户点击后退按钮时,浏览器只是重新加载上一个页面,而不会重新提交表单。
以下是一个示例代码,演示了如何使用Python的Flask框架实现Post/Redirect/Get模式:
from flask import Flask, redirect, request, render_template app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def form(): if request.method == 'POST': # 处理表单提交的数据 # ... # 重定向到下一个页面 return redirect('/next_page') else: return render_template('form.html') # 展示表单页面 @app.route('/next_page') def next_page(): return render_template('next_page.html') # 展示下一个页面
在上面的示例中,当用户提交表单时,使用
redirect()
函数将用户重定向到/next_page
页面。这样在用户点击后退按钮时,浏览器只会重新加载/
页面,而不会重新提交表单。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
获得1.00元问题酬金 该回答引用ChatGPT,希望对题主有所帮助,如有帮助,还望采纳。
这个问题通常是由于浏览器缓存中的表单数据没有同步更新引起的。您可以尝试以下解决方案:
在表单中添加以下属性:
autocomplete="off"
。这将禁用浏览器自动填充表单数据。在表单的提交代码中添加以下代码:
window.location.href = window.location.href;
。这将强制浏览器刷新页面,以确保表单数据已同步更新。使用POST-REDIRECT-GET模式,即在处理完表单数据后重定向到另一个页面,避免重复提交表单。
希望以上解决方案对您有所帮助!
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
故事不长丨 2023-09-28 09:01关注获得0.40元问题酬金 - 使用重定向:在处理表单提交后,服务器可以将用户重定向到下一个页面,而不是仅仅展示成功提交的信息。这样,在用户点击浏览器的后退按钮时,浏览器会跳转到重定向的页面而不会触发确认重新提交表单的错误。
- 禁用缓存:您可以在表单页面的响应头中添加 no-cache 指令,这样浏览器就不会缓存该页面的内容,从而避免了重新加载已经被提交的表单数据的问题。具体的方法取决于服务器端使用的技术和框架,请参考相关文档进行设置。
- 使用 Post/Redirect/Get 模式:这种模式是一种常见的web开发模式,它可以避免表单重复提交的问题。当用户提交表单后,服务器首先进行表单的处理,然后使用重定向将用户导航到一个新的页面。这样,即使用户点击浏览器的后退按钮,也不会出现确认重新提交表单的错误。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
yy64ll826 2023-09-28 11:14关注获得0.40元问题酬金 浏览器回退出现ERR_CACHE_MISS 解决方案
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
比特流1024 2023-09-28 16:09关注获得0.40元问题酬金 参考gpt4:
结合自己分析给你如下建议:
这个问题是因为浏览器的缓存导致的。当你点击提交按钮后,表单数据会被发送到服务器并进行处理。然后,当用户点击浏览器的后退按钮时,浏览器会尝试从缓存中加载之前的页面,而不是重新向服务器发送请求。这就导致了表单数据被重复提交的问题。
要解决这个问题,你可以尝试以下方法:
在表单提交时,添加一个时间戳或随机数参数,以确保每次提交的数据都是唯一的。这样,即使用户点击浏览器的后退按钮,浏览器也会认为这是一个新的请求,从而避免重复提交表单。例如:<form action="your_action" method="post"> <input type="hidden" name="timestamp" value="<?php echo time(); ?>"> <!-- 其他表单字段 --> <input type="submit" value="提交"> </form>
使用JavaScript禁用浏览器的缓存功能。这可以通过在表单提交时触发一个JavaScript函数来实现。这个函数会阻止表单的默认提交行为,并手动发送一个请求到服务器。例如:
<form id="myForm" action="your_action"> <!-- 表单字段 --> <input type="submit" value="提交"> </form> <script> document.getElementById('myForm').addEventListener('submit', function(event) { event.preventDefault(); // 阻止表单的默认提交行为 // 发送一个请求到服务器,例如使用Ajax }); </script>
如果以上方法仍然无法解决问题,你可以考虑使用HTTPS协议来加密你的表单数据。这样,即使用户查看页面源代码,也无法轻易地看到和提交表单数据。但请注意,这种方法并不能解决浏览器缓存问题,只是提高了数据传输的安全性。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
竹山全栈:项目定制+原创课程 2023-10-04 21:31关注获得0.60元问题酬金 表单设置成禁止重复提交即可
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
会跑的小鹿 2023-10-04 23:32关注获得0.20元问题酬金 加个防止后退代码逻辑
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
GIS工具开发 2023-10-04 23:55关注获得0.60元问题酬金 检测一下后退,然后刷新界面
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
- 2021-08-20 14:32回答 1 已采纳 把http协议换成https协议发送请求试试
- 2022-08-27 05:10回答 5 已采纳
- 2020-11-07 21:47回答 2 已采纳 已解决
- 2021-10-19 11:01jwzoro的博客 post请求浏览器回退会出现重新提交表单,原因为浏览器的安全性,防止重复提交 由于浏览器检测到你的post请求和上一次是一样一样的,浏览器处于安全考虑,为了避免你重复提交相同的数据,所以会给提示; 下面是解决...
- 2017-03-24 10:15回答 1 已采纳 http://blog.sina.com.cn/s/blog_5f54f0be0101ah7q.html
- 2021-01-12 10:11回答 10 已采纳 可以分片上传
- 2022-05-04 18:12回答 5 已采纳 可能是nodejs版本过低导致的,尝试下这两个版本两个版本来进行安装:v14和v16(n为node包版本管理工具) ndoe 14版本尝试sudo npm install -g n sudo n 14
- 2019-05-16 18:00单身の汪的博客 当页面的表单进行提交后,点击浏览器的返回按钮,页面会显示ERR_CACHE_MISS: 经过查询资料,如果不想显示该页面的话,需要在先前的页面设置缓存: <meta http-equiv=“Cache-Control” content=“max-age=7200”...
- 2018-03-26 20:41回答 1 已采纳 YII is not started when you create a container. That's because it isn't defined in Dockerfile. Onl
- 2016-03-31 01:25回答 1 已采纳 花费了好大功夫终于解决了,这里是hibernate的一个ManyToOne映射的加载方式是懒加载,json解析时解析代理对象出错,而使用jetty最新版本(9.3.6.v20151106)时居然不报错
- 2019-04-12 17:59回答 3 已采纳 上述问题的解决方法是放弃了cnpm,使用npm: ``` npm config set registry https://registry.npm.taobao.org ``` 几天前
- 2020-01-10 10:16taiguolaotu的博客 最近研究spring Security框架,在写demo的时候。出现一个问题,百思不得其解,话不多少,...其次,上图说到确认重新提交表单,我想到我的提交方式是form表单方式进行提交。 上代码 <form action="/login" met...
- 2017-02-06 15:27回答 1 已采纳 There's a long-standing bug in Chromium regarding how links without protocols are handled. It occa
- 2019-03-25 12:41xiaodaoshi11的博客 SITUATION: 设备搜索后,根据返回结果 list.php 进入特定设备的详细页面 one.php,但点击后退按钮(上一页)返回 list.php,会出现确认重新提交表单的错误页面 ERR_CACHE_MISS。 REASON: list.php 本身设置(默认...
- 2021-09-17 17:23one named slash的博客 使用django自带的会话及身份验证中间件,自己认为的应该没问题,但总报标题所述错误,折腾了半天,终于解决,这里记录一下。 我的urls.py urlpatterns = [ path('xadmin/', xadmin.site.urls), ...
- 没有解决我的问题, 去提问
悬赏问题
- ¥30 哈夫曼编码译码器打印树形项目
- ¥20 求完整顺利登陆QQ邮箱的python代码
- ¥15 怎么下载MySQL,怎么卸干净原来的MySQL
- ¥15 网络打印机Ip地址自动获取出现问题
- ¥15 求局部放电案例库,用于预测局部放电类型
- ¥100 QT Open62541
- ¥15 stata合并季度数据和日度数据
- ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
- ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?
- ¥15 用QT,进行QGIS二次开发,如何在添加栅格图层时,将黑白的矢量图渲染成彩色