没有自定义标头的简单GET请求。响应将按预期返回。正文中的数据是可访问的,但标头不可访问。
当我尝试访问“ etag”标头时,浏览器会引发异常:
拒绝获取不安全的标头“ etag”
Chrome,Safari和Firefox的行为均相同。我没有在IE上测试过。
我在这里想念什么?
使用CORS时仅公开简单的响应头。这里定义了简单的响应头。 ETag不是简单的响应头。如果要公开非简单标头,则需要设置Access-Control-Expose-Headers标头,如下所示:
ETag
Access-Control-Expose-Headers
Access-Control-Expose-Headers: ETag
但是,请注意,我注意到Chrome,Safari和Firefox中的错误会阻止非简单标头正确显示。我不确定目前是否可以解决此问题。
您不需要进行预检请求,因为仅非GET / POST http方法或非简单的 请求 标头(并且您正在询问 响应 标头)才需要进行预检。