Angular 5 - 尽管 (Set-Cookie) 在响应标头中,但设置了 Cookie

Posted

技术标签:

【中文标题】Angular 5 - 尽管 (Set-Cookie) 在响应标头中,但设置了 Cookie【英文标题】:Angular 5 - Cookie is set although (Set-Cookie) is in the response header 【发布时间】:2018-08-29 17:50:10 【问题描述】:

对于一个 Angular 5 应用程序,我有一个身份验证服务,它执行一个 HTTP POST,它返回会话 cookie (CORS),如下面的代码所示:

signIn(signInRequest: SignInRequest): Observable<SignInResponse> 
   let headers: Headers = new Headers();   
   headers.append('Content-Type','application/json');  
   return this.http
              .post("/login", email:  signInRequest._email,password:signInRequest._password,  headers: headers, withCredentials: true )
  .map(this.extractData)
  .catch(this.handleErrorObservable);

header 的响应中包含 set-cookie 如下所示:

请求头如下:

我知道浏览器应该设置 cookie 响应。为什么不做呢?

【问题讨论】:

我有一个类似的问题正在努力解决并即将发布赏金。 ***.com/questions/49352181/… 可能与developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…有关? @Jota.Toledo cookie 正在响应标头中返回,所以不确定要在这里公开什么? @ttugates 和你一样,过去两天我一直在努力解决这个问题。 这是我第一次使用 cookie,所以在你发帖之前,我以为我遗漏了一些明显的东西。刚刚在我的 SO 中添加了 50pt 赏金。 【参考方案1】:

您的前端托管在localhost:4200,您的后端托管在api.safra.me。默认情况下,您的浏览器不会随请求一起发送 cookie,除非您在登录请求中使用 withCredentials,如您已经使用的那样,以及所有后续请求

【讨论】:

以上是关于Angular 5 - 尽管 (Set-Cookie) 在响应标头中,但设置了 Cookie的主要内容,如果未能解决你的问题,请参考以下文章

angular 5 材质 - 表单字段停留在 180px

为啥 NodeJS 中来自 Angular 的 GET 请求有时为空,尽管有数据

无法获得 Angular CLI 版本,尽管所有要求都已安装?

为啥我的 Angular 2 应用程序中的 Web 套接字已关闭,尽管我还没有明确关闭它?

尽管 Angular 中的表单已重置,但输入字段仍标记为红色

尽管使用 @Injectable(providedIn: 'root' ) 装饰器,Angular Service 在注入组件时不充当单例