在HTTP CORS规范中,5.6 Access-Control-Allow-Headers和5.3 Access-Control-Expose-Headers之间的区别是什么?
[Allow-Headers]标头表示,作为对a的响应的一部分 预检请求,在此期间可以使用哪些标题字段名称 实际要求
更新:我希望有人会告诉我其中一个标题是针对每个请求(飞行前)发送的......但是,还有另一个标题用于此目的:5.9 Access-Control-Request-Headers
[Request-Headers]标头指示实际请求中将使用哪些标头作为预检请求的一部分
顺便说一句,我喜欢他们(W3C)如何谨慎使用5.9,以便请求标题可以有一个名为_Something_ Request Header
的字段。
我完全迷失在规范中,是否有一个图表,我可以更好地理解这个过程?
答案 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()方法只能访问简单的响应头。为了能够访问其他标头,您需要在此处指定它。