Fetch 无法获取响应头
请求响应后,打印 Response.headers
却输出了空对象。
经过笔者数分钟的探索,发现产生这种情况,应该是请求处于跨域之中,于此则要在 fetch()
中配置 mode
属性:
mode: 请求的模式,如 cors、 no-cors 或者 same-origin。
fetch(url,{
mode: 'cors',
...
})
至于 Response.headers
中的请求头信息不全,则要在服务端配置 Access-Control-Expose-Headers
。
响应首部
Access-Control-Expose-Headers
列出了哪些首部可以作为响应的一部分暴露给外部。默认情况下,只有七种 simple response headers (简单响应首部)可以暴露给外部:
- Cache-Control
- Content-Language
- Content-Length
- Content-Type
- Expires
- Last-Modified
- Pragma
如果想要让客户端可以访问到其他的首部信息,可以将它们在
Access-Control-Expose-Headers
里面列出来。