cookie不是使用Django和CORS在AngularJS应用程序中编写的

时间:2014-02-19 14:41:38

标签: django angularjs cors django-rest-framework django-cors-headers

我面临的问题与cookie disappeared in AngularJS app using Django and CORS非常相似,我迫切需要一些帮助。

我通过http://www.example.com

访问了一个有角度的客户网站

在单独的服务器上进行查询,我们称之为http://mysite.herokuapp.com

在我的Django配置中,我有以下内容:

CORS_ALLOW_CREDENTIALS = True

CORS_ORIGIN_REGEX_WHITELIST = (
    '^https?://www.mysite.com.*',
    '^https?://((?!www\.).*\.herokuapp\.com).*',
    '^https?://127.0.0.1:(\w+)$'
)

CORS_ALLOW_HEADERS = (
    'x-requested-with',
    'content-type',
    'accept',
    'origin',
    'authorization',
    'X-CSRFToken'
)

在Angular方面,我有:

$http.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
$http.defaults.headers.common['X-CSRFToken'] = $cookies['csrftoken'];

当我进行登录查询时,我在响应中看到以下内容:

Set-Cookie:csrftoken=RIbJ2T6oRLmGe2udiKgxjJI0jRQpxs5K; expires=Wed, 18-Feb-2015 12:33:23 GMT; Max-Age=31449600; Path=/
Set-Cookie:sessionid=4k1vdq59qaclptxmjjroua2jdo7qdh0t; expires=Wed, 05-Mar-2014 12:33:23 GMT; httponly; Max-Age=1209600; Path=/

Cookie保存在http://mysite.herokuapp.com

不幸的是,当我向Django Rest Framework的APIView查询时,csrf验证失败了。 (即使我看到在请求标头上发送了正确的令牌;我猜这是由于域名。)

0 个答案:

没有答案