我正在构建一个SignUp表单,并对POST表单进行以下API调用:
const request = new Request('http://localhost:4300/auth/', {
method: 'POST',
headers: new Headers({
'Accept' : 'application/json',
'Content-Type' : 'application/json',
}),
body: JSON.stringify({ user: data })
});
fetch(request).then(response => {
console.log(response);
const auth = response.headers.get('Authorization');
console.log(auth)
});
问题是response.headers.get('Authorization')
正在返回null
。即使我查看Chrome的网络XHR请求,我也会看到API服务器发送的响应标头。
为什么React没有通过上述请求向我提供response.headers
?
由于
答案 0 :(得分:3)
来自http://localhost:4300/auth/
的回复的Access-Control-Expose-Headers
response heade r值必须包含" Authorization
"如果您希望允许您的请求前端JavaScript代码访问Authorization
响应标头值。
如果响应中不包含Access-Control-Expose-Headers
标头的值,则浏览器允许您从Web应用中的客户端JavaScript访问的唯一响应标头为Cache-Control
,
Content-Language
,
Content-Type
,
Expires
,
Last-Modified
和
Pragma
。
请参阅https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name了解相关规范。