[英]Django HttpResponseForbidden raised without calling view function
我正在寫一個django服務器。 一個非常奇怪的情況發生了-當我試圖測試一下,我POST
到URL的一個,只有process_request
中間件被擊中,同時兼具process_view
對應於該URL和查看功能都沒有命中。 該過程以某種方式停止在中間,並且HTTP 403
返回到客戶端。 另外,使用相同的url(和相同的視圖函數),我在另一時間GET
它,並且該過程順利進行,沒有錯誤報告。 所有其他視圖功能/ URL都可以正常工作。
服務器有點大,所以我這里不做展示。 但是,我只有兩個有特色的middlewares
process_request
和process_view
,並且正如我所說的,只有process_request
被稱為; 它不返回HttpResponseForbidden
。
這是已安裝的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'
任何想法可能會出問題嗎?
可能是因為您忘記了在請求中包含csrf令牌。 如果您使用html表單,請在其中包含csrf_token標記
<form ...
{% csrf_token %}
...
如果您使用ajax請求-請閱讀文檔以了解如何使用ajax和csrf保護https://docs.djangoproject.com/en/1.5/ref/contrib/csrf/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.