如何访问angular2中的响应cookie?

时间:2016-11-07 18:31:58

标签: http angular cookies ionic2

我试图访问此Cookie(响应的): enter image description here

当我在网络部分的chrome调试工具中打开请求时,我可以清楚地看到cookie存在,但是如何从我的代码中访问这些值?我之前从未使用过cookies,而且我也不知道该做些什么来提取"提取"他们......我正在使用Http。

开展Ionic2项目

我已经知道必须发送allowCredentials: true标题,但这不起作用......

以下是请求/回复详情:

enter image description here

这是服务:

public callLogin(service_guid: string, pos_guid: string, login_data: Object) {

        return this.http.post(
            this.url + service_guid + "/" + pos_guid + "/ack", 
            login_data,
            {withCredentials: true}
            )
            .map(response => response.headers);
    }

和来电者:

this.__posService.callLogin(login_data.service_guid, login_data.pos_guid, {"password": data.password})
                            .subscribe(
                                res => {
                                    console.log("Success:");
                                    console.log(res.get("apsession"); // this returns undefined
                                },
                                err => {
                                    console.log("Error:");
                                }
                            );

当我尝试从标题中访问Cookie时,它会返回 undefined 。我在这做错了什么?

1 个答案:

答案 0 :(得分:0)

您尝试获取的响应标头的名称实际上是Set-Cookie而不是apsession。因此,如果您执行res.get("set-cookie")之类的操作,它将返回与该名称匹配的第一个标头。由于你有超过1个,你可以这样做:

let headers: Headers = res.headers;
headers.getAll('set-cookie');

返回具有该名称的所有标头的列表。你可能会在那里找到迷恋。

请参阅: