gpt4 book ai didi

ajax - chrome浏览器未为xhr发送 'If-None-Match'

转载 作者:行者123 更新时间:2023-12-04 08:26:16 24 4
gpt4 key购买 nike

我正在使用角度服务通过rest api获取资源。服务器将ETag header 设置为某个值,并且还在响应中设置Cache-Control: no-cache

使用Firefox可以正常工作,但是当我使用Chrome浏览器访问同一应用程序时,它没有发送If-None-Match。我已经尝试在Mac和Ubuntu机器上使用当前的Chrome开发者和稳定版 channel ,并且在Firefox正确添加If-None-Match时,两者都相同。

现在,有条件地提取了其他非xhr/static资源,并且所有这些请求都正确地获得了304 NOT MODIFIED响应。

关于Chrome为什么不只为XHR请求发送If-None-Match header ,我可以做些什么以获得更多信息?

最佳答案

如果您是通过HTTPS在Chrome浏览器中发布Ajax查询,则任何证书错误(例如在API服务器上使用自签名证书)都会阻止响应被缓存。这似乎是设计使然。

显然是Chrome defect existed,但在Webkit中是fixed,并在2010年左右进入了Chromium/Chrome。

另一个question建议使用jQuery的ifModified:true和cache:true选项手动设置If-Modified-Since和If-None-Match header 。不幸的是,这不会超出Chrome的预期行为,即不会缓存具有自签名证书的服务器的HTTPS响应。

使用有效的签名SSL证书在服务器上进行测试为我解决了该问题;使用默认的jQuery AJAX方法,Chrome收到了预期的304的文本/html内容。

关于ajax - chrome浏览器未为xhr发送 'If-None-Match',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18414477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com