未设置AngularJS cookie

时间:2014-08-04 01:09:07

标签: python angularjs cookies flask http-headers

我正在开发一个在不同域上使用API​​后端的AngularJS网站。

  • 前端网站位于:www.example.com
  • API位于:api.example.com

我使用Angular的$http.post向设置cookie的API发出身份验证请求。然后,我对API进行辅助$http.get调用,并且从POST请求设置的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 个答案:

答案 0 :(得分:2)

由于您要从其他域发送http请求,因此您需要确保$http能够发送Cookie。在您应用的配置中,添加:

$httpProvider.defaults.withCredentials = true

这将允许AngularJS将您的浏览器cookie发送到服务器。