我尝试使用以下代码在我的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机制之前,它一直运行良好。请帮忙。
答案 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
}
};