Django没有为AngularJS前端提供CSRF令牌

时间:2015-09-22 10:25:54

标签: javascript python angularjs django cookies

我试图从AngularJS前端向Django后端发送跨域PUT请求。当我在同一个域上运行时(localhost:8000的前端和localhost:8001后端),我从{csrftoken获取$cookies,这一切都很好{1}}并且可以发送成功的请求。当我将后端切换到外部QA服务器时,问题就开始了。我得到空$cookies,没有sessionidcsrftoken Cookie。我没有想法,这就是我在这里寻求帮助的原因,提前谢谢。

1 个答案:

答案 0 :(得分:1)

您无法在其他域上获取Cookie,因为所有Cookie都是针对每个域设置的,这是出于安全原因。

如果要访问其他域中的会话和Cookie,则必须复制它们。您可以通过发送一些带有特殊令牌的请求(用于验证)并在django中创建视图来创建视图,该视图将从某个存储中获取数据,基于该令牌并填充用户cookie,因此在下次请求时它们将可用。