为什么$ http.delete在angularJS中不起作用?
问题描述:
我尝试使用$ http.delete使用Django和获得HTTP 403 我的JS文件如下:
var myApp = angular.module('myApp',['ui.bootstrap']);
myApp.run(function($http) {
$http.defaults.headers.post['X-CSRFToken'] = $.cookie('csrftoken');
});
myApp.controller('PostsListController', ['$scope','$http',function($scope,$http) {
$http.get('/api/v1/posts/').success(function (data) {
$scope.posts = data;
});
$scope.deletePost = function(post) {
$http.delete('/api/v1/posts/'+ post.id + '/');
};
}]);
从控制台细节:
{detail: "CSRF Failed: CSRF token missing or incorrect."}
detail
:
"CSRF Failed: CSRF token missing or incorrect."
答
我通过重写方法.RUN解决我的问题( )
myApp.run(function($http) {
$http.defaults.xsrfCookieName = 'csrftoken';
$http.defaults.xsrfHeaderName = 'X-CSRFToken';
});
检查您的CSRF令牌。它可能不会在cookie中设置。 –
您确定cookie存在并正在设置吗? – mariocatch
我知道令牌中的问题,但我不知道要设置什么值 –