【发布时间】:2019-04-13 06:19:53
【问题描述】:
使用 Angular 6.1.3。
登录请求在响应中发送 JSESSIONID cookie。但是,任何后续请求都不包括此 cookie。在搜索大多数提到的使用 withCredentials: true。但是我正在使用它,但仍然没有成功。在 Chrome 和 Firefox 上都试过了。
任何帮助将不胜感激。
有时存在另一个 cookie,withCredentials 导致包含该 cookie,但不包含 JSESSIONID。非常沮丧。
我还尝试手动访问 JSESSIONID 以自己包含它,即使这不是必需的。然而,即使“观察:'响应'”也不允许我看到 JSESSIONID cookie 的值。因此,如果我必须走这条路,请告知如何访问。
对发送的请求类型有任何限制吗?即使我尝试 GET 没有成功,当提供答案时,它是否适用于任何类型的后续请求(即 POST、PUT、PATCH)?
登录请求:
const params: HttpParams = new HttpParams().set('token.name', username).append('token.value', password);
const headers: HttpHeaders = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');
return this.httpClient
.post<any>(this.loginUrl, params, { headers: headers, params: params, withCredentials: true })
.map(adjudicator => {
return adjudicator.adjudicator as Adjudicator;
})
.catch(this.errorHelperService.handleError);
后续请求:
// test request
const headers: HttpHeaders = new HttpHeaders().set('Content-Type', 'application/json');
return this.httpClient
.get<any>(this.configService.getManagerUrl()+'1/bada8257-e7d9-45d3-a8a1-83a67f863260', { headers: headers, withCredentials: true })
.map(response => {
return response.match as Match;
})
.catch(this.errorHelperService.handleError);
【问题讨论】:
标签: javascript angular http cookies jsessionid