在HTTP CORS规范中,Allow-Headers和Expose-Headers之间的区别是什么?

时间:2015-01-23 10:09:13

标签: http cors

在HTTP CORS规范中,5.6 Access-Control-Allow-Headers5.3 Access-Control-Expose-Headers之间的区别是什么?

  

[Allow-Headers]标头表示,作为对a的响应的一部分   预检请求,在此期间可以使用哪些标题字段名称   实际要求

更新:我希望有人会告诉我其中一个标题是针对每个请求(飞行前)发送的......但是,还有另一个标题用于此目的:5.9 Access-Control-Request-Headers

  

[Request-Headers]标头指示实际请求中将使用哪些标头作为预检请求的一部分

顺便说一句,我喜欢他们(W3C)如何谨慎使用5.9,以便请求标题可以有一个名为_Something_ Request Header的字段。

我完全迷失在规范中,是否有一个图表,我可以更好地理解这个过程?

2 个答案:

答案 0 :(得分:16)

使用控制允许报头

用于响应预检请求,以指示在发出实际请求时可以使用哪些HTTP标头。

使用 - 控制 - 暴露 - 接头

此标头允许服务器将允许浏览器访问的白名单标题列入白名单。例如:

来源: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

答案 1 :(得分:7)

只是为了澄清上面的评论,这些评论名称不当,这些评论名称并不严重。

他们提供不同的功能。

  • Access-control-allow-headers指定允许哪些标头更改服务器的状态。
  • 虽然Access-control-expose-headers有一个get方法getResponseHeader()方法,它返回特定响应头的值。在CORS请求期间,getResponseHeader()方法只能访问简单的响应头。为了能够访问其他标头,您需要在此处指定它。