Access-Control-Expose-Headers

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

响应标头 Access-Control-Expose-Headers 允许服务器指示那些响应标头可以暴露给浏览器中运行的脚本,以响应跨源请求。

默认情况下,仅暴露列入 CORS 白名单的请求标头。如果想要让客户端可以访问到其他的标头,服务器必须将它们在 Access-Control-Expose-Headers 里面列出来。

标头类型 响应标头
禁止修改的标头

语法

http
Access-Control-Expose-Headers: [<header-name>[, <header-name>]*]
Access-Control-Expose-Headers: *

指令

<header-name>

允许客户端从响应中访问的 0 个或多个使用逗号分隔的标头名称列表。这些标头是对列入 CORS 白名单的请求标头补充

*(通配符)

若请求没有携带凭据(请求没有 HTTP Cookie或认证信息),“*”才会被当作一个特殊的通配符。对于带有凭据的请求,会被简单地当作标头名称“*”,没有特殊的语义。

示例

想要暴露一个非简单响应标头,可以这样指定:

http
Access-Control-Expose-Headers: Content-Encoding

想要额外暴露自定义的标头,例如 Kuma-Revision,可以指定多个,用逗号隔开:

http
Access-Control-Expose-Headers: Content-Encoding, Kuma-Revision

服务器可以为不带凭据的请求响应通配符:

http
Access-Control-Expose-Headers: *

但是,这并不会匹配 Authorization 标头,所以如果你要暴露它,需要显式指定:

http
Access-Control-Expose-Headers: *, Authorization

规范

Specification
Fetch
# http-access-control-expose-headers

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Access-Control-Expose-Headers
Wildcard (*)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见