enable-cors.org nginx config建议使用Access-Control-Allow-Headers
和Access-Control-Expose-Headers
的以下值。但是除了Custom headers and headers various browsers *should* be OK with but aren't
之外,没有多少解释为什么。如果我的应用程序不需要其中一些API请求,我宁愿不为每个API请求充电。
我知道我可以删除它们并等待某些事情要破解但是我希望能够了解它们为何/如何被选中的背景知识,这样我就可以做出更明智的决定,看看它们是否对我的申请是必要的。即他们是否建议支持我的应用程序不需要支持的浏览器?
访问控制允许标头:DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range
访问控制曝光标题:DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range
对于Allow-Headers
,我可以理解其中大多数客户想要发送它们的原因。 X-CustomHeader
虽然可以说是一个古怪的东西。另外,我在Chrome上测试过,即使User-Agent
未明确允许,Chrome仍然会发送它。这意味着这些选项是为了我的应用可能不需要的浏览器兼容性而添加的。
对于Expose-Headers
,似乎特定于应用程序特定于客户端需要读取的标头。为什么客户需要阅读 User-Agent
,DNT
或X-Requested-With
?它们包含供服务器使用的信息,而不是客户端。此外,Cache-Control
和Content-Range
已经enabled by default,因此它们似乎多余。
答案 0 :(得分:3)
我最终浏览了每个标题并确定是否有必要。我编制了一个变更清单:
Allow
和Expose
的更改
X-CustomHeader
Allow
的更改:
Content-Range
Content-Type
Expose
的更改:
Cache-Control
Content-Type
DNT
User-Agent
X-Requested-With
If-Modified-Since
Range
Content-Length
这让我有以下几点:
访问控制允许标头:DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range
访问控制曝光标题:Content-Length,Content-Range
非常感谢任何评论或更正。