在dropzone中发送CSRF令牌

时间:2017-10-09 11:21:40

标签: python angularjs django csrf dropzone.js

我尝试使用以下代码在我的AngularJS / Django应用程序中发送csrf令牌。 $rootScope.CSRFToken包含从Cookie对象接收的标记值。所有其他服务都可以正常使用ajax但是当我通过dropZone调用服务时,使用标头,它会出现Server responded with 403 code.

错误

这就是我配置dropzone的方法:

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

在应用程序中实施CSRF机制之前,它一直运行良好。请帮忙。

1 个答案:

答案 0 :(得分: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
            }
        };