在经常使用POST
请求的商业Web应用程序中,需要执行history.go(-1)
以触发回导航。正如其他人已经经历,我越来越 -Chrome - 确认表单重新提交 - 不同行为
确认重新提交表单ERR_CACHE_MISS
错误的Chrome。但是,在Firefox中也是如此(这不是重复的,请继续阅读)。
确实,使用POST
请求渲染内容是导致上述问题的原因(不使用Post/Redirect/Get设计模式)。
但是,在寻找替代解决方案时,观察到在某些网站/应用程序中,可能导航回Chrome(缓存命中),因为在某些站点失败。我检查了成功网站的所有HTTP headers
,看起来HTTP headers
没有任何区别。
它可能是浏览器根据Web应用程序使用的SSL证书采取不同的行为,或者可能是某些网站中的后退导航工作原因?
实例工作Web应用程序:
http://gmail.com/ - 随便输入一些电子邮件。点击下一步。多次输入不正确的密码并使用浏览器后退按钮导航回。
https://support.hostgator.com/ - 在搜索框中输入一些随机文本(多次执行此操作)。使用浏览器后退按钮导航回。在失败的web应用所使用
POST请求:
POST /post3.jsp HTTP/1.1
Host: 192.168.1.111
Connection: keep-alive
Content-Length: 18
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://192.168.1.111
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://192.168.1.111/post2.jsp
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
我对这个问题和答案表示衷心的感谢! –