我是 Angular 2 的新手,目前正在使用 Angular 2.2.1,我可以在其中成功发布请求并获得成功响应,但是当我尝试从响应中获取 Authorization header 时,我总是得到null 我是否能够获得 Content-Type header 。到目前为止,以下是我的解决方案。
service.ts登录方式:
login(model: LoginModel) {
let requestUrl = '/someurl';
let requestPayload = JSON.stringify(model);
let headers = this.getHeaders(false); // ... Set all required headers
let options = new RequestOptions({ headers: headers }); // Create a request option
return this.http.post(requestUrl, requestPayload, options) // ...using post request
//.map((res: Response)) // ...and calling .json() on the response to return data
.subscribe((res: Response) => {
var payload = res.json();
var authorization = res.headers.get('Authorization');
var contentType = res.headers.get('Content-Type');
console.log(payload, contentType, authorization)
});
}
header 助手
getHeaders(isSecureAPI: boolean) {
let headers = new Headers({ 'Content-Type': 'application/json', 'Accept': 'application/json' });
if (isSecureAPI) {
headers.append('Authorization', 'GetFromSession');
headers.append('X-UserID', 'GetFromSession');
}
return headers;
}
Fiddler 音轨:
所以任何人都可以指导我我可能做错了什么?
最佳答案
header 被允许但未在 CORS 服务器上公开,但是在服务器上添加 headers.add("Access-Control-Expose-Headers", "Authorization, X-Custom"); 完成了这项工作: )
关于http - 如何在 Angular 2 中获取自定义响应 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42063685/