当前位置:  开发笔记 > 编程语言 > 正文

如何在Javascript中没有POSTDATA警告的情况下重新加载页面?

如何解决《如何在Javascript中没有POSTDATA警告的情况下重新加载页面?》经验,为你挑选了5个好方法。

我想使用以下命令重新加载页面:

window.location.reload(true); 

但是我收到POSTDATA警告,因为刷新函数想要重新发送以前的POST表单数据.如何在没有此警告的情况下刷新页面?

更新:我无法控制项目!我无法解决POST本身!



1> Rex M..:

没有警告就无法刷新; refresh指示浏览器重复上一个操作.如果重复上一个操作涉及重新提交数据,则由浏览器选择是否警告用户.

您可以通过以下操作重新导航到具有新会话的同一页面:

window.location = window.location.href;


@sam你已经超出了问题的范围.我们不知道提问者如何或为何处于他所处的境地.

2> Sam Hasler..:

只是更改window.locationJavaScript是危险的,因为用户仍然可以点击后退按钮并重新提交帖子,这可能会产生意外结果(例如重复购买).PRG是一个更好的解决方案

使用发布/重定向/获取(PRG)模式

为了避免这个问题,许多Web应用程序使用PRG模式 - 而不是直接返回HTML页面,POST操作返回重定向命令(使用HTTP 303响应代码(有时是302)和HTTP"Location"响应头),指示浏览器使用HTTP GET请求加载不同的页面.然后可以安全地将结果页面加入书签或重新加载,而不会产生意外的副作用.


是的,但重定向POST需要某种形式的控制

3> Rob..:

我有一些问题,锚/ hash-urls(包括#)没有使用Rex的解决方案重新加载...

所以我最终删除了哈希部分:

window.location = window.location.href.split("#")[0];



4> 小智..:

要绕过POST警告,您必须使用完整URL重新加载页面.工作良好.

window.location.href = window.location.protocol +'//'+ window.location.host + window.location.pathname;



5> 小智..:

window.location.replace(window.location.href)怎么样;

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有