2017-10-09 52 views
2

我尝试使用以下代码在我的AngularJS/Django应用程序中发送csrf令牌。 $rootScope.CSRFToken包含从Cookie对象收到的令牌值。所有其他服务工作正常使用Ajax,但是当我打电话通过悬浮窗的服务,用头,它给人的错误Server responded with 403 code.在dropzone中发送CSRF令牌

这是怎么了,我在配置悬浮窗:

$scope.dzOptions = { 
     url : $scope.saveUrl, 
     paramName : 'newCaseFiles', 
     maxFilesize: $rootScope.maxCaseFileSize, 
     addRemoveLinks : true, 
     autoProcessQueue: false, 
     uploadMultiple: true, 
     parallelUploads: 20, 
     headers: { 
      'X-CSRFToken': $rootScope.CSRFToken 
     } 
    }; 

它的工作很好,直到CSRF机制在应用程序中实施。请帮忙。

回答

0

通过添加'AUTHORIZATION': $rootScope.AuthHeaders工作的代码,其中$rootScope.AuthHeaders含有$http.defaults.headers.common.Authorization;

$scope.dzOptions = { 
      url : $scope.saveUrl, 
      paramName : 'newCaseFiles', 
      maxFilesize: $rootScope.MaxCaseFileSize, 
      addRemoveLinks : true, 
      autoProcessQueue: false, 
      uploadMultiple: true, 
      parallelUploads: 20, 
      headers: { 
       'X-CSRFToken': $rootScope.CSRFToken, 
       'AUTHORIZATION': $rootScope.AuthHeaders 
      } 
     };