我很清楚地知道使用GET方法,并把请求参数中的URL是一个不好的做法和安全漏洞 。 但是,我们在项目开发已基本完成的情况下,我们没有能力改变所有的GET发布和从头再来重新测试整个事情。
有没有办法来改变显示的网址是什么?
或URL编码将做的工作? 请建议这可能是在这种情况下,最好的办法。
我很清楚地知道使用GET方法,并把请求参数中的URL是一个不好的做法和安全漏洞 。 但是,我们在项目开发已基本完成的情况下,我们没有能力改变所有的GET发布和从头再来重新测试整个事情。
有没有办法来改变显示的网址是什么?
或URL编码将做的工作? 请建议这可能是在这种情况下,最好的办法。
的方式存在,它是HTML5历史API。
它需要JavaScript和HTML5兼容的浏览器 ,或为老IE的JavaScript回退(如History.js) 。
看看history.replaceState()
和history.pushState()
方法:首先改变目前的历史条目,第二增加了一个新的(在创建后退按钮的使用噪音,所以我建议第一)。
要删除查询字符串(的?param1=value1¶m2=value2
部分)只运行在页面加载这个脚本:
<script>
$(function(){
history.replaceState("","",location.href.substring(0,location.href.indexOf("?")));
});
</script>
虽然这个客户端解决方案肯定提高清晰度和眼睛糖果,我怀疑它提高了安全性可言; 后重定向消息获取会更好,但如果你不能,那么使用这种技术。
我一般结合使用PRG与此实现漂亮的网址,它完美的作品。
请注意,这是一个模拟PRG,页面加载可能会根据您如何编程应用程序中有不可预知的行为后F5。