我在不同的端点托管了一个 Django 应用程序和一个 Angular JS 应用程序。显然,为了让 XHR 请求工作,我需要在 Angular 中设置 csrf 令牌,当 Angular 由 Django 提供服务时,这很容易做到,但在独立时就不那么容易了。
到目前为止,这是我的代码:
angular.module('App', [
'ngCookies',
])
.run(['$rootScope', '$http', '$cookies',
function($rootScope, $http, $cookies){
// Set the CSRF header token to match Django
$http.defaults.headers.post['X-CSRFToken'] = $cookies['csrftoken'];
// Bootstrap
$http.get('http://127.0.0.1:8000/test/').success(function(resp){
console.log($cookies['csrftoken']);
});
}
])
似乎 $cookies['csrftoken'] 始终未定义,我假设我必须以某种方式检索它,但找不到任何有关此过程如何工作的资源。
谁能指出我正确的方向?