私は試してみる この例。私がdajax関数にアクセスしようとすると、「no csrfまたはsession cookie」というエラーが出ます。どうすればjavascriptにcsrfトークンを追加できますか?私はテンプレートにcsrfトークンを追加しようとしましたが、うまくいきませんでした。
回答:
回答№1は1から django doc:
ミドルウェア "django.middleware.csrf"を追加します。CsrfViewMiddleware "をミドルウェアクラスMIDDLEWARE_CLASSESのリストに追加します(CsrfResponseMiddlewareが使用されている場合、CSRF攻撃が処理されていると見なすビューミドルウェアの前に来る必要があります)。 あるいは、保護したい特定のビューに対して、デコレータdjango.views.decorators.csrf.csrf_protectを使用することもできます(下記参照)。
POSTフォームを使用するテンプレートでは、フォームが内部URLの場合は、要素内でcsrf_tokenタグを使用します。
{%csrf_token%}
これは外部URLを対象とするPOSTフォームでは実行しないでください。CSRFトークンが漏洩して脆弱性が発生するためです。
対応するビュー関数で、 "django.core.context_processors.csrf"コンテキストプロセッサが使用されていることを確認します。通常、これは次の2つの方法のいずれかで実行できます。
3.1「django」を常に使用するRequestContextを使用します。core.context_processors.csrf "(TEMPLATE_CONTEXT_PROCESSORSの設定に関係なく)。一般的なビューやcontribアプリケーションを使用している場合は、これらのアプリケーションでRequestContextを一貫して使用しているため、すでにカバーされています。
3.2プロセッサを手動でインポートして使用し、CSRFトークンを生成してテンプレートコンテキストに追加します。
回答№2については2
1) "django.middleware.csrf.CsrfViewMiddleware"をsettings.pyのミドルウェアクラスに追加します
2)テンプレート内のタグの後に、{%csrf_token%}
基本的にはそれです
https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax ここでは、javascriptとajax csrfトークンについて調べることができます
回答№3の場合は1
たぶんこれが役立ちます: DjangoのAJAX経由でパラメータをポストしている間に "CSRFトークンが見つからないか間違っています"