是否可以将 javascript:location.reload(true) 用作表单的 action= 而无需浏览器说“为了重新加载此页面,必须重新发送信息”或类似的东西?表单操作当前由 onsubmit= 处理。
问问题
1633 次
3 回答
1
如果用户来自 POSTing 数据,Reload 将始终询问有关重新发送信息的问题。很难回答任何具体的问题,因为我不知道您要做什么。这是浏览器历史中无法避免的事情。
更好的解决方案是使用 PRG 模式。
于 2009-11-17T18:31:55.577 回答
1
如果您只想重新加载页面而不提交表单,请尝试window.location=window.location;
于 2009-11-17T18:33:20.257 回答
0
似乎您正在使用onsubmit
事件中的 AJAX 请求处理您的表单,这引出了一个问题,因为如果您无论如何都必须刷新页面,那么什么也得不到。我建议要么使用表单中的普通帖子,要么使用@Bob 的解决方案(他通过先发布使我免于打字)。如果您使用window.location=window.location
,请确保在您的onsubmit
方法中发生的任何事情完成后调用它,或者您可能会引入一个竞争条件,在您的 onsubmit 方法完成发送数据之前它会重定向。
编辑:
只需阅读您提供更多信息的评论。同样,重新加载整个页面以响应 AJAX 提交完全违背了使用 AJAX 的目的。你真的应该考虑使用像 jQuery 这样的 Javascript 库来帮助你。基本上,模式如下:
- 使用 AJAX 处理提交
- 请求完成后,仅使用 AJAX 请求页面的更改部分
- 用对第二个 AJAX 调用的响应替换或附加页面上的内容
- 清空表格以便再次填写
于 2009-11-17T18:35:05.917 回答