0

私はdjangoサーバーを書いています。非常に奇妙な状況が発生しました。テストしようとするとPOST、URL の 1 つにアクセスしたときに、process_requestミドルウェアのみがヒットし、process_viewその URL に対応する両方のビュー関数がヒットしませんでした。プロセスが途中で停止し、 aHTTP 403がクライアントに返されます。また、同じURL(および同じビュー機能)をGET使用して、別の時間に代わりに使用したところ、エラーが報告されることなくプロセスがスムーズに進みました。他のすべてのビュー関数/URL は正常に機能します。

サーバーはちょっと大きいので、ここですべてを表示するつもりはありません。ただし、コスチュームを着ているのは と の 2つmiddlewaresだけです。戻りません。process_requestprocess_viewprocess_requestHttpResponseForbidden

インストールされているものは次のmiddlewaresとおりです。

'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'ttam_container.ttam.middlewares.authentication.Authentication'

インストールされているアプリは次のとおりです。

'django_concurrent_test_server',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'ttam_container.ttam',
'ttam_container.ui'

何がうまくいかない可能性がありますか?

4

1 に答える 1

1

リクエストに csrf トークンを含めるのを忘れたことが原因である可能性があります。HTML フォームを使用している場合は、csrf_token タグを含めます。

<form ...
    {% csrf_token %}
    ...

ajax リクエストを使用する場合 - ajax および csrf 保護の使用方法に関するドキュメントをお読みください https://docs.djangoproject.com/en/1.5/ref/contrib/csrf/

于 2013-04-30T05:27:10.887 に答える