【发布时间】:2017-06-23 03:40:01
【问题描述】:
我是 Angular 2 的新手,目前正在使用 Angular 2.2.1,我可以成功地发布请求并获得成功响应,但是当我尝试从响应中获取 Authorization 标头时,我总是得到null 我是否能够获得 Content-Type 标头。以下是我目前的解决方案。
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)
});
}
标题助手
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;
}
提琴手曲目:
所以任何人都可以指导我我可能做错了什么?
【问题讨论】:
-
检查服务器可能不允许的标头。
-
@Roman 我在客户端工作,请您指导一下,我如何检查服务端?
-
没有服务器端是不可能的。
-
我不知道为什么它被否决了,如果有人这么认为,请您在列表中告诉我原因,这可能会指导我一些正确的方向。谢谢:)
-
@RomanC 正如您在 Fiddler 屏幕截图中看到的,我们正在获取服务器允许的标头列表,其中还包含授权。
标签: http angular observable