当我在网络部分的chrome调试工具中打开请求时,我可以清楚地看到cookie存在,但是如何从我的代码中访问这些值?我之前从未使用过cookie,我不知道如何“提取”它们......我正在使用Http开展Ionic2项目。
我已经读过必须发送allowCredentials: true
标题,但这不起作用......
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。我在这做错了什么?
您尝试获取的响应标头的名称实际上是Set-Cookie而不是apsession。因此,如果您执行类似res.get("set-cookie")
的操作,它将返回与该名称匹配的第一个标头。由于你有超过1,你可以这样做:
let headers: Headers = res.headers;
headers.getAll('set-cookie');
它返回具有该名称的所有标题的列表。你可能会在那里找到迷恋。
看到: