2

問題なく開発サーバーで作業していましたが、実稼働サーバーでローカルホストでもIPでもない実際の名前で試したところ、次のようになりました。

    Forbidden (403)

CSRF verification failed. Request aborted.
Help

Reason given for failure:

    CSRF cookie not set.

私はjqueryを介して投稿を送信しています.javascriptの修正を使用してメソッドを投稿し、すべて...

他に何をすべきかわからない... 誰か手を貸してくれませんか?

どうもありがとう!

4

1 に答える 1

1

通常、Cookieが設定されていないということは、csrfミドルウェアを追加しなかったことを意味します。これを、実稼働デプロイメントに関連する設定モジュールに追加します。また、JavaScriptを介して使用する場合は、受信ビューが機能することを確認する必要があります。

2つのオプションがあります。サーバー上のビューをとしてマークするかcsrf_exempt、リクエストにcsrfトークンを含める必要があります。csrfトークンは、どのテンプレートでも。として使用できます{% csrf_token %}。私は後者をします。

リクエストにcsrfトークンを含めるには、POST変数として渡す必要がありますcsrf_token。次のようなテンプレートにスニペットを含めることができます。

<script type="text/javascript">
    var csrf_token = '{% csrf_token %}';
</script>

"csrf_token": csrf_token,そして、あなたがリクエストをしているところならどこでも、投稿データに追加するだけです。

于 2011-06-17T19:26:42.707 に答える