AngularJS Cookie未设置

0 投票
1 回答
586 浏览
提问于 2025-04-18 15:52

我正在开发一个AngularJS的网站,这个网站的后台API在不同的域名上。

  • 前端网站的地址是:www.example.com
  • API的地址是:api.example.com

我使用Angular的$http.post来向API发送一个认证请求,这个请求会设置一个cookie。然后我又用$http.get去请求API,但之前设置的cookie没有被发送回服务器。看起来这个cookie在某个地方丢失了。

这个API是一个用Flask框架写的Python应用,我使用了flask-cors来允许跨域请求。Access-Control-Allow-Origin这个头部被设置为http://www.example.com,而cookie的域名是api.example.com

我已经设置了应用在一个域名下运行,使用nginx和URL重写。所以前端网站在www.example.com,而API通过www.example.com/api/来访问,cookie也按预期保存和使用。

我不确定这是前端还是API网站配置的问题。

1 个回答

2

因为你是从另一个域名发送http请求,所以你需要确保你的 $http 能够发送cookies。在你应用的配置中,添加以下内容:

$httpProvider.defaults.withCredentials = true

这样做可以让AngularJS把你浏览器里的cookies发送到服务器。

撰写回答