1. ホーム
  2. パイソン

Django receive post request report 403 (CSRF cookie not set) 解決策

2022-03-01 16:47:41

restful なインターフェーススタイルによれば、新しいリソースインターフェースの リクエストメソッドは post であるべきですが、django に post リクエストを送った後、403forbidden が報告されます。

本文を印刷してみると、"CSRF cookie not set"と書いてあり、その解決策として、setting.pyファイルにコメントで

'django.middleware.csrf.CsrfViewMiddleware' です。

このミドルウェアは、クロスサイトリクエストの偽造を防止するためのものです。通常、Webフォームでリクエストした場合は問題ないのですが、apiで呼び出した場合は無効になってしまうので、postリクエストを呼び出すインターフェースを使えるようにするためには、このプラグインを無効化する必要があります。

あるいは、ヒントにあるように、クローラーが行うようなブラウザ環境のエミュレーションが必要で、それは面倒すぎる。