Angular 2在后续请求中未传递JSESSIONID

时间:2018-11-09 16:37:08

标签: javascript angular http cookies jsessionid

使用Angular 6.1.3。

登录请求正在响应中发送JSESSIONID cookie。但是,任何后续请求均不包含此cookie。在搜索中最多提及的是withwithCredentials的使用:true。但是,我正在使用它,但仍然没有成功。在Chrome和Firefox上都尝试过。

任何帮助将不胜感激。

一次,存在另一个cookie,并且带有凭据导致包含该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);

Login Response

login Response Cookie tab

后续请求:

        // 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);

Subsequent Test Request

1 个答案:

答案 0 :(得分:0)

Cookie具有“安全”指令,并且您尝试访问的网站不安全。

  

仅通过HTTPS协议以加密请求将安全cookie发送到服务器。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies