加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:36:19 所属栏目:百科 来源:网络整理
导读:我正在使用角度服务来通过rest api获取资源.服务器将ETag标头设置为某个值,它还在其响应中设置Cache-Control:no-cache. 这可以使用Firefox正常工作,但是当我使用Chrome访问同一个应用程序时,它不会发送If-None-Match.我已经在Mac和Ubuntu盒子上尝试了当前的
我正在使用角度服务来通过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内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读