2016-05-23 100 views
1

因为我从Nginx 1.8升级到1.10并且激活HTTP/2而不是SPDY,所以在Firefox中触发的第一个Ajax调用(通过https)失败。 如果我再次执行相同的呼叫,它的工作原理。在Chrome和IE中,这个问题不会发生。取消激活HTTP/2解决了这个问题,但对我来说却不是永久的解决方案。Firefox中的第一个Ajax请求失败,Nginx 1.10和HTTP/2

nginx的访问日志甚至没有列出第一个请求,所以我有点无知在哪里开始调试。

Firefox Network Panel Wireshark Screenshot of first ajax call

火狐:46.0​​.1 Nginx的:1.10 的JQuery:2.22

+0

Firefox中的HTTP/2和CORS存在一些奇怪的问题(但我没有在头文件中看到预检请求,这让我感到困惑)。因此,我的建议是,你尽一切努力确保CORS不会咬你。 – dsign

+0

你使用哪个密码套件?我建议你使用[Mozilla]建议的配置(https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=nginx-1.1.10&openssl=1.0.2h&hsts=yes&profile=intermediate )为中级或现代。您可以使用[Wireshark](https://www.wireshark.org/)进行故障排除。 – Oleg

+0

我不认为它是CORS的问题,因为ajax调用的目标是相同的域。我尝试了不同的密码套件,包括Mozilla的套件,但都没有成功。 – r3vile

回答

0

我与IEXPLORER 10和11检查 - 同一个问题:罪魁祸首是Nginx的V1.10。发布请求在空闲一段时间后不会完成。

将nginx更新到至少v1.11以解决问题。