如何在Response头Angular2中获取值 [英] How to get value in Response header Angular2
本文介绍了如何在Response头Angular2中获取值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在响应头(Set-Cookie)中获取会话令牌。如何才能访问Response头中的值?
i want to get session token in response header(Set-Cookie).how can i access values in Response header ?
var headers = new Headers();
headers.append('Content-Type', 'application/json');
console.log('url',this.loginUrl)
this.http.post(this.loginUrl,
JSON.stringify({ "username": value.username, "password": value.password }),
{ headers: headers })
.map((res: Response) =>
res.json())
.subscribe((res) => {
console.log("res", res);
this.loading.hide();
if (res.message_code == "SUCCESS") {
this.nav.setRoot(HomePage, {
username: value.username,
});
} else {
let alert = Alert.create({
title: "Sign In Error !",
subTitle: 'Please Check Username or Password.',
buttons: ['Ok']
});
this.nav.present(alert);
}
}, err => {
this.loading.hide();
console.log('error', err);
});
这是我的标题回复
< a href =https://i.stack.imgur.com/6bgpY.png =noreferrer>
推荐答案
问题是您将响应映射到其json内容。可以从响应本身到达标头。所以你需要删除 map
运算符:
The problem is that you map your response to its json content. Headers can be reached from the response itself. So you need to remove the map
operator:
this.http.post(this.loginUrl,
JSON.stringify({ "username": value.username, "password": value.password }),
{ headers: headers })
/*.map((res: Response) => // <--------------
res.json())*/
.subscribe((res) => {
var payload = res.json();
var headers = res.headers;
var setCookieHeader = headers.get('Set-Cookie')
(...)
});
请注意CORS访问响应头。看到这个问题:
Be careful with CORS with accessing the response headers. See this question:
- angular2/http get location header of 201 response
这篇关于如何在Response头Angular2中获取值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文