删除请求中的AngularJS 403错误

时间:2015-07-08 14:14:33

标签: javascript angularjs http-delete

我正在使用以下代码发送删除请求:

  $http({method: 'DELETE', url: '/url'}).
    success(function(status){
      //return status
    }).
    error(function(status){
    });

我在csrf中设置了app.run(),如下所示:

 $http.defaults.headers.post['X-CSRFToken'] = getCookie("csrftoken");

GET和POST工作正常,这意味着标头包含一个csrf令牌,但在发送DELETE请求时,我收到403 Forbidden错误和状态:

detail: "CSRF Failed: CSRF token missing or incorrect."

我需要将额外的东西添加到DELETE请求的标题中吗?

1 个答案:

答案 0 :(得分:1)

我只需添加一个HTTP请求拦截器即可将令牌添加到所有POST / PUT / DELETE请求中。例如

.config(function($httpProvider) {
    $httpProvider.interceptors.push(function() {
        return {
            request: function(config) {
                if (~['POST', 'PUT', 'DELETE'].indexOf(config.method)) {
                    config.headers['X-CSRFToken'] = getCookie("csrftoken");
                }
            }
        };
    });
})