跨域资源共享GET:'拒绝从响应中得到不安全的标题"etag"

Moh*_*med 53 javascript ajax rest web-applications cors

没有自定义标头的简单GET请求.响应按预期返回.可以访问正文中的数据,但不能访问标题.

当我尝试访问"etag"标题时,浏览器会引发异常:

拒绝得到不安全的标题"etag"

Chrome,Safari和Firefox的行为都一样.我没有在IE上测试它.

我在这里错过了什么?

mon*_*sur 83

使用CORS时只会暴露简单的响应头.这里定义简单的响应头. ETag不是简单的响应标头.如果要公开非简单标头,则需要设置Access-Control-Expose-Headers标头,如下所示:

Access-Control-Expose-Headers: ETag
Run Code Online (Sandbox Code Playgroud)

但请注意,我注意到Chrome,Safari和Firefox中的错误会阻止非简单标题正确显示.现在可以解决这个问题,我不确定.

您不需要执行预检请求,因为只有非GET/POST http方法或非简单请求标头需要预检(并且您询问响应标头).

  • 我确认对Access-Control-Expose-Headers标头的支持是错误的. (3认同)
  • 我很想知道是什么让Last-Modified简单而不是ETag.他们不应该支持缓存优化的相同目的吗? (2认同)