【问题标题】:Chrome - Confirm Form Resubmission - Different behaviorsChrome - 确认重新提交表单 - 不同的行为
【发布时间】:2016-01-02 12:09:00
【问题描述】:

在频繁使用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

【问题讨论】:

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


    【解决方案1】:

    发现在上述工作流程中,Chrome 后退导航失败,除非在HTTPS 通信中使用的SSL Certificate 是有效的、受信任的证书。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-16
      • 2016-10-19
      • 2020-08-01
      • 2017-07-21
      • 1970-01-01
      • 2016-05-14
      • 2016-08-18
      • 2015-11-16
      相关资源
      最近更新 更多