【发布时间】:2017-04-24 23:33:18
【问题描述】:
几个小时以来,我一直试图让 FileUpload 与 DRF 和 Angular 一起工作。我有这样的看法:
class FileUploadView(APIView):
parser_classes = (MultiPartParser,)
def post(self, request, pk):
print request.FILES
#do something
return Response(status=204)
我正在使用 angular-file-upload (https://github.com/nervgh/angular-file-upload/wiki/Module-API) 像这样(getCookie() 函数来自 here):
var csrf = getCookie('csrftoken');
$scope.uploader = new FileUploader({
queueLimit:1,
url:'upload',
method: 'POST',
headers : {
'X-CSRF-TOKEN': csrf
}
});
但是,当我使用 curl 将数据发送到 url 时,它可以工作:
curl -X POST \
--dump-header - \
-H "Content-Type:multipart/form-data" \
-u admin:admin \
-F "image=@/Users/magda/test.pdf;type=application/pdf" \
http://localhost:8000/lectures/166/upload
但是每当我使用角度函数时,我都会得到:
detail: "CSRF Failed: CSRF token missing or incorrect."
我还尝试将 csrf_exempt 添加到函数中,这并没有改变任何东西。我做错了什么?
【问题讨论】:
标签: django angularjs curl file-upload