C#WebApi + Angular 4 Set-Cookie不保存cookies

问题描述:

我正在对我的API执行一个http请求,该应用程序应该使用Set-Cookie Header将两个Cookie发送给我。C#WebApi + Angular 4 Set-Cookie不保存cookies

似乎cookie正确地发送回该初始请求,但它们不保存在Chrome中,因此以后请求不发送cookie。

我的初始化响应头:

Access-Control-Allow-Credentials:true 
Access-Control-Allow-Headers:content-type 
Access-Control-Allow-Origin:http://localhost:4200 
Cache-Control:no-cache 
Content-Length:0 
Date:Thu, 20 Apr 2017 09:25:45 GMT 
Expires:-1 
Pragma:no-cache 
Server:Microsoft-IIS/8.0 
Set-Cookie:ASP.NET_SessionId=vpt0f3m4jp2gwghm1mmrxyhm; path=/; HttpOnly 
Set-Cookie:ARRAffinity=ccebcfbd458447f3ab209749a770ad1f93d4b4c907a7cac9ef717d5fbf543fe3;Path=/;Domain=xxx 
X-AspNet-Version:4.0.30319 
X-Powered-By:ASP.NET 

但没有什么是存储在存储的cookie的Chrome。

难道从

Expires:-1 

感谢排在前进!

我想你的C#后端运行在不同于你的Angular应用程序的端口上。 Cookie不在同一主机的不同端口之间共享。 Chrome会显示适用于当前标签网址的Cookie,这是Angular应用程序。所以你不能在那里看到你的后端cookie。

您可以检查从Angular应用程序到C#后端的XHR请求头,它们应该包含指定的Cookie(ASP.NET_SessionId,ARRAffinity)。

+0

它更加复杂:我在localhost和Azure后端运行我的角度应用程序。但我明白这一点,所以我怎样才能将这些cookie保存在我的Angular App中?用ngx-cookie来做到这一点很难吗? –

+0

所以情况也是如此 - 不同的主机不共享cookie。 –

+0

为什么在Angular应用程序中需要来自Azure的Cookie? –