Angularjs 在执行AJAX post时如何以角度设置X-XSRF-TOKEN

Angularjs 在执行AJAX post时如何以角度设置X-XSRF-TOKEN,angularjs,ajax,post,csrf,Angularjs,Ajax,Post,Csrf,我理解跨站点伪造请求,但我不确定一件事,即如何在angular中设置X-XSRF-TOKEN,以便cookie匹配。我想在发出put或post请求时,应该通过Angular的$http提供程序,但当我尝试执行post请求时,仍然会得到403。我使用Django作为后端,因此我设置$httpProviders cookie和头名称 function Config($locationProvider, $stateProvider, $urlRouterProvider, $httpProvider

我理解跨站点伪造请求,但我不确定一件事,即如何在angular中设置X-XSRF-TOKEN,以便cookie匹配。我想在发出put或post请求时,应该通过Angular的$http提供程序,但当我尝试执行post请求时,仍然会得到403。我使用Django作为后端,因此我设置$httpProviders cookie和头名称

function Config($locationProvider, $stateProvider, $urlRouterProvider, $httpProvider) {

    $locationProvider.html5Mode(true);
    $httpProvider.defaults.xsrfCookieName = 'csrftoken';
    $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

var promise = $http({
            method: method,
            url: (isApi ? Config.api_path : '/') + uri,
            'X-CSRFToken': $http.csrftoken,
            data: data || {},
            timeout: deferred.promise
        })

Angular在执行post方法以与CSRFToken cookie进行比较时是否会自动设置X-CSRFToken?当您为
$httpProvider
设置默认值时,实际上就是这样做的。我认为这个
'X-CSRFToken':$http.CSRFToken
是多余的。