2015-10-05 544 views
3

在经常使用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 

回答

2

鉴定认为在Chrome后退导航在上述工作流失败,除非用于HTTPS通信SSL Certificate是一个有效的,受信任的证书。

如果您使用的是自签名证书,请将CA证书添加为Trusted Root Certification Authorities,并且所有内容均应按预期工作。

+0

我对这个问题和答案表示衷心的感谢! –