Chrome - 确认表单重新提交 - 不同的行为

时间:2015-10-05 18:24:03

标签: google-chrome http firefox web-applications https

在经常使用POST请求的商业Web应用程序中,必须执行history.go(-1)来触发返回导航。正如其他人所经历的那样,我正在 -

  

确认表格重新提交ERR_CACHE_MISS

Chrome中的

错误。但是,同样适用于Firefox(这不重复,请继续阅读)。

确实,使用POST请求呈现内容是导致上述问题的原因(不使用Post / Redirect / Get设计模式)。

然而,在寻找替代解决方案时,观察到在某些网站/应用程序中,可以在Chrome(缓存命中)中导航回来,就像在某些网站中失败一样。我检查了成功网站中的所有HTTP headers,看起来HTTP headers没有任何区别。

可能是浏览器根据Web应用程序使用的SSL证书采取不同的行为,或者在某些网站上进行反向导航的原因可能是什么?

工作网络应用程序示例:

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

1 个答案:

答案 0 :(得分:3)

确定Chrome导航导航在上述工作流程中失败,除非SSL Certificate通信中使用的HTTPS是有效的可信证书。

如果您使用自签名证书,请将CA证书添加为Trusted Root Certification Authorities,一切都应按预期工作。