ホームページ >バックエンド開発 >Python チュートリアル >AJAX POST リクエストで Django CSRF チェックが失敗するのはなぜですか?
Ajax POST リクエストで Django CSRF チェックが失敗する
背景:
Django はクロスサイト リクエストを採用しています悪意のある Web サイトによるフォームの送信やアクションのトリガーを防止する偽造 (CSRF) 保護メカニズムユーザーに代わって。ただし、これにより、AJAX POST リクエストを行うときに問題が発生する可能性があります。
解決策:
Django の CSRF を渡すには、AJAX POST リクエストのデータ本体に CSRF トークンを含める必要があります。チェック。 $.ajax 関数を使用すると、csrfmiddlewaretoken のキーと値のペアをデータ オブジェクトに追加するだけでこれを実現できます。
$.ajax({ data: { somedata: 'somedata', moredata: 'moredata', csrfmiddlewaretoken: '{{ csrf_token }}' },
Django テンプレート言語は、特別な変数 {{ csrf_token }} をサポートしています。 CSRF トークンを取得して JavaScript コードに挿入します。このトークンは、リクエストが予期されたソースからのものであることを確認し、CSRF 攻撃を防ぐために使用されます。
csrfmiddlewaretoken を AJAX POST リクエストのデータ本体に組み込むことにより、Django がリクエストを認識して受け入れることを保証し、データを処理し、必要なアクションを実行します。
以上がAJAX POST リクエストで Django CSRF チェックが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。