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