React 앱에서 Axios 게시 요청을 사용하여 Django 서버에 파일을 업로드하려고 합니다. 서버는 요청 헤더에 CSRF 쿠키가 있을 것으로 예상합니다.
이 요청에는 쿠키 설정을 위해 찾을 수 있는 모든 방법이 이미 포함되어 있습니다. document.cookie
,设置withCredential: true
,并指定Cookie
헤더를 통해.
내 Axios 요청은 다음과 같습니다.
으아악이것은 내 Django 뷰입니다:
으아악또한 settings.py
:
CSRF 쿠키가 요청 헤더에 포함되어 있는지 또는 CSRF 요구 사항을 충족하는지 확인하는 방법은 무엇입니까? 확실히 뷰에 @csrf_exempt
를 추가하면 경로가 작동하므로 실제로 CSRF 문제여야 합니다.
토큰을
으아아아formData
로 포장하면 됩니다. 헤더나 쿠키 조작이 필요하지 않습니다:팁: 쿠키, 헤더 등이 전송되고 있는지 확실하지 않을 때마다 브라우저 개발자 도구의 네트워크 탭을 확인하세요. 요청의 "요청 헤더" 부분에 표시되면 전송되고 있는 것이므로 문제가 서버 측에 있다는 의미입니다. 이 경우
multipart/form-data
Django 需要csrfmiddlewaretoken
表单字段中的令牌。对于application/json
请求,您可以使用X-CSRFToken
헤더용입니다.