2017-10-09 101 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 
      } 
     };