ホームページ >バックエンド開発 >Python チュートリアル >AJAX POST リクエストで Django CSRF チェックが失敗するのはなぜですか?

AJAX POST リクエストで Django CSRF チェックが失敗するのはなぜですか?

DDD
DDDオリジナル
2024-12-07 10:15:12219ブラウズ

Why is My Django CSRF Check Failing with AJAX POST Requests?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。