首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chrome浏览器没有为xhr发送'If-None-Match‘

chrome浏览器没有为xhr发送'If-None-Match‘
EN

Stack Overflow用户
提问于 2013-08-24 10:58:35
回答 1查看 3.2K关注 0票数 9

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

使用火狐浏览器可以正常工作,但当我使用Chrome浏览器访问同一个应用程序时,它不会发送If-None-Match。我在苹果电脑和Ubuntu机器上都试过了当前的Chrome dev和稳定频道,两者都是一样的,而火狐则正确地添加了If-None-Match

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

有什么我可以做的来获得更多的信息,为什么Chrome不只为XHR请求发送If-None-Match头?

EN

回答 1

Stack Overflow用户

发布于 2013-11-21 01:08:13

如果在Chrome中通过HTTPS发出Ajax查询,任何证书错误,例如在API服务器上使用自签名证书,都会阻止响应被缓存。这似乎是有意为之。

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

另一个缓存建议使用ifModified: true和cache: true选项手动设置If-Modified- using和If-None-Match标头。不幸的是,这不会覆盖Chrome不缓存来自具有自签名证书的服务器的HTTPS响应的预期行为。

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18414477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档