React アプリで Axios 投稿リクエストを使用して、Django サーバーにファイルをアップロードしようとしています。サーバーはリクエスト ヘッダーに CSRF Cookie が含まれることを期待します。
このリクエストには、Cookie を設定するために見つけられるすべてのメソッドがすでに含まれています。 document.cookie
を渡し、withCredential: true
を設定し、Cookie
ヘッダーを指定します。
これは私の Axios リクエストです:
リーリーこれは私の Django ビューです:
リーリー また、関連する Django 設定が settings.py
で正しく設定されていると思います:
CSRF Cookie がリクエスト ヘッダーに含まれていること、または CSRF 要件を満たしていることを確認するにはどうすればよいですか?確かに、ビューに @csrf_exempt
を追加するとルートは機能するため、実際には CSRF の問題であるはずです。
P粉4638244102024-03-29 10:02:40
トークンを formData
に含める必要があるだけです。ヘッダーや Cookie の操作は必要ありません:
ヒント: Cookie やヘッダーなどが送信されているかどうか不明な場合は、ブラウザの開発者ツールの [ネットワーク] タブを確認してください。リクエストのリクエスト ヘッダー セクションにこれらのメッセージが表示される場合は、送信されており、サーバー側に問題があることを意味します。この場合、multipart/form-data の場合、Django はフォーム フィールドに csrfmiddlewaretoken
トークンを必要とします。 application/json
リクエストの場合は、XX-CSRFToken
ヘッダーを使用できます。