2017-04-02 7 views
0

を設定していない:角度2クッキーは、私がこのようなHTTPを使用

private headers = new Headers({ 'Content-Type': 'application/json' }) 
login(loginUser: LoginUser): Promise<User> { 
     return this.http.post('http://localhost:9009/api/users/login', JSON.stringify(loginUser), { headers: this.headers }) 
      .toPromise() 
      .then(res => res.json()) 
      .catch(this.handleError) 
    } 

これは、このように、自動的にブラウザにクッキーを設定する必要があります。

Console screenshot

しかし、ブラウザに設定されたクッキーがありません。

  • 角度バージョン:2.4.10
  • ブラウザ:クローム56.0.2924.87(64ビット)| FireFoxの52.0.2(64ビット)
  • 言語:活字体(IBMアカデミーの問題のため)2.2.1
  • ノード:ノード--version = 3.10.10

応答ヘッダ:

Response headers

+0

クッキーは焼かれていません。 –

+0

ありがとう、私はwithCredentials = trueを設定して解決しました – ws2823147532

答えて

2

私は、次のリソースを参照する私の問題を解決しました:

まず.Iは(フィルタで)私のJavaサーバでCORSヘッダを設定しなければならないCross-originについては、これが問題である、このように:

httpServletResponse.addHeader("Access-Control-Allow-Origin", "http://localhost:4444"); 
    httpServletResponse.addHeader("Access-Control-Allow-Credentials", "true"); 
    httpServletResponse.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT"); 
    httpServletResponse.addHeader("Access-Control-Max-Age", "3600"); 
    httpServletResponse.addHeader("Access-Control-Allow-Headers", "Content-Type, Range"); 
    httpServletResponse.addHeader("Access-Control-Expose-Headers", "Accept-Ranges, Content-Encoding, Content-Length, Content-Range"); 

第二に、私はセット私はこのように、要求を行いwithCredentials帰属:

get(url: string, parmas: any): Observable<any> { 
    return this.http.get(url, { search: parmas, headers: this.headers, withCredentials: true }) 
     .map((res: Response) => res.json()) 
     .do(data => console.log('server data:', data)) // debug 
     .catch(this.handleError); 
} 

最後に、私は私のスペルエラーの検出を支援に感謝の@JJJ s。

関連する問題