我正在使用角度服务来通过rest api获取资源.服务器将ETag标头设置为某个值,它还在其响应中设置Cache-Control:no-cache.
这可以使用Firefox正常工作,但是当我使用Chrome访问同一个应用程序时,它不会发送If-None-Match.我已经在Mac和Ubuntu盒子上尝试了当前的Chrome开发和稳定频道,两者都是一样的,而Firefox则正确地添加了If-None-Match.
现在,有条件地获取其他非xhr /静态资源,并且所有这些请求都正确获得304 NOT MODIFIED响应.
我是否可以采取任何措施来获取有关Chrome为何仅针对XHR请求发送If-None-Match标头的更多信息?
如果您通过HTTPS在Chrome中发出Ajax查询,则任何证书错误(例如在API服务器上使用自签名证书)都会阻止响应被缓存.这似乎是设计上的.
显然是Chrome defect existed,但在Webkit中是fixed,并在2010年左右进入Chromium / Chrome.
另一个question建议使用jQuery的ifModified:true和cache:true选项手动设置If-Modified-Since和If-None-Match标头.不幸的是,这不会忽略Chrome的预期行为,也不会从具有自签名证书的服务器缓存HTTPS响应.
在具有有效签名SSL证书的服务器上进行测试为我解决了这个问题; Chrome使用默认的jQuery AJAX方法按预期收到304文本/ html内容.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。