我正在使用 Django Rest Framework 和 Django CORS Headers 作为后端 API 构建一个 AngularJS 应用程序。
直到今天一切正常。突然csrfcookie
andsessionid cookie
停止出现在 Chrome 中。
我看到 API 使用csrfcookie
. Chrome 没有在开发工具中显示它,但是我在chrome://settings/cookies
.
AngularJS
$httpProvider.defaults.useXDomain = true;
$http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$http({withCredentials: true, ...})
Django API
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'X-CSRFToken'
)