Angular CORS 上缺少 5 个响应 header
Angular 5 response header is missing on CORS
在我的 angular 应用中,我需要从响应 header 中检索位置数据。
服务器 (Nginx) 配置为允许跨源和到 header 中的 allow/expose 位置。我可以在 chrome DEV 控制台中看到这一点,但在我的 angular 应用程序中,我没有看到 header.
的任何数据
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers:Location, Content-Type
Access-Control-Expose-Headers:Location, Content-Type
这是我的代码片段。
this.httpClient.post( url, {
UserName: username,
Password: password
}
)
.subscribe(
(res: Response) => {
console.log(res.headers);
},
error => {console.log('Error occured::' + error);
}
);
console.log(res.headers) returns 未定义。
这里出了什么问题?
新的 HttpClient returns 默认只有主体。如果您想从响应本身检索任何内容,您可以使用选项 observe:
this.httpClient.post(url, {
UserName: username,
Password: password
}, {
observe: 'response'
})
.subscribe(res => {
console.log(res.headers.get('Location');
}, error => {
console.log('Error occured::' + error);
});
您正在将 res 类型转换为 Response,所以 TypeScript 没有发现您的错误。最好像我的示例一样删除类型,以便自动正确输入。
好的。有两个问题。正如@Manduro 指出的那样,需要在 angular 请求中添加 observe 。另一个是我错过了两个 header 类型之间的逗号。
https://enable-cors.org/server_nginx.html
需要在位置配置文件中添加'always'关键字
在我的 angular 应用中,我需要从响应 header 中检索位置数据。 服务器 (Nginx) 配置为允许跨源和到 header 中的 allow/expose 位置。我可以在 chrome DEV 控制台中看到这一点,但在我的 angular 应用程序中,我没有看到 header.
的任何数据Access-Control-Allow-Origin: *
Access-Control-Allow-Headers:Location, Content-Type
Access-Control-Expose-Headers:Location, Content-Type
这是我的代码片段。
this.httpClient.post( url, {
UserName: username,
Password: password
}
)
.subscribe(
(res: Response) => {
console.log(res.headers);
},
error => {console.log('Error occured::' + error);
}
);
console.log(res.headers) returns 未定义。
这里出了什么问题?
新的 HttpClient returns 默认只有主体。如果您想从响应本身检索任何内容,您可以使用选项 observe:
this.httpClient.post(url, {
UserName: username,
Password: password
}, {
observe: 'response'
})
.subscribe(res => {
console.log(res.headers.get('Location');
}, error => {
console.log('Error occured::' + error);
});
您正在将 res 类型转换为 Response,所以 TypeScript 没有发现您的错误。最好像我的示例一样删除类型,以便自动正确输入。
好的。有两个问题。正如@Manduro 指出的那样,需要在 angular 请求中添加 observe 。另一个是我错过了两个 header 类型之间的逗号。
https://enable-cors.org/server_nginx.html
需要在位置配置文件中添加'always'关键字