ajax – chrome浏览器没有为xhr发送’If-None-Match’

前端之家收集整理的这篇文章主要介绍了ajax – chrome浏览器没有为xhr发送’If-None-Match’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用角度服务来通过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内容.

猜你在找的Ajax相关文章