使用 angular 2 获得响应 Header
Get Response Header with angular 2
我从 php 设置了 header 响应 Token: abc
。如何从响应 header 中获取值?
这是我的代码
isLogin(): Promise<any> {
let headers = new Headers;
headers.set('Token', 'absajsj'); //I can set the header
headers.get('Token'); // But this return NULL
//console.log(this.cookie.get('autologin'));
//let options = new RequestOptions({ headers: headers });
return this.http.get(this.BASEURL + 'api/client/authentication/check', { headers: headers })
.toPromise()
.then(res => {
let a = res;
console.log(a.headers.get('Token'))
})
.catch(err => console.log(err));
}
这是服务器代码。我使用 codeigniter。
if ($this->auth->loggedin())
{
$this->output
->set_status_header(200)
->set_content_type('application/json')
->set_output(json_encode(['status' => $_COOKIE['autologin']]));
} else {
$this->output
->set_status_header(200)
->set_header('Token: abcks')
->set_content_type('application/json')
->set_output(json_encode(['status' => $_SERVER['HTTP_TOKEN']]));
}
请注意 else
街区。
这是响应 header。我使用 firefox 开发工具。
您是否尝试使用 append 方法来代替?
headers.append('Token', 'absajsj');
请尝试:
a.headers('Token')
谷歌搜索 2 天后。我发现这是一个cors问题。要解决这个问题,只需在 .htaccess
中添加 Allow-Origin-Header-Expose "Token"
感谢大家的关注。这个社区很棒。我会将此标记为答案。干杯:)
我从 php 设置了 header 响应 Token: abc
。如何从响应 header 中获取值?
这是我的代码
isLogin(): Promise<any> {
let headers = new Headers;
headers.set('Token', 'absajsj'); //I can set the header
headers.get('Token'); // But this return NULL
//console.log(this.cookie.get('autologin'));
//let options = new RequestOptions({ headers: headers });
return this.http.get(this.BASEURL + 'api/client/authentication/check', { headers: headers })
.toPromise()
.then(res => {
let a = res;
console.log(a.headers.get('Token'))
})
.catch(err => console.log(err));
}
这是服务器代码。我使用 codeigniter。
if ($this->auth->loggedin())
{
$this->output
->set_status_header(200)
->set_content_type('application/json')
->set_output(json_encode(['status' => $_COOKIE['autologin']]));
} else {
$this->output
->set_status_header(200)
->set_header('Token: abcks')
->set_content_type('application/json')
->set_output(json_encode(['status' => $_SERVER['HTTP_TOKEN']]));
}
请注意 else
街区。
这是响应 header。我使用 firefox 开发工具。
您是否尝试使用 append 方法来代替?
headers.append('Token', 'absajsj');
请尝试:
a.headers('Token')
谷歌搜索 2 天后。我发现这是一个cors问题。要解决这个问题,只需在 .htaccess
中添加Allow-Origin-Header-Expose "Token"
感谢大家的关注。这个社区很棒。我会将此标记为答案。干杯:)