django post請求 403錯誤解決方法

第一次用Django做項目,遇到了很多問題。

今天遇到的問題是Django在處理post請求時多次出現(xiàn)403錯誤。

我先描述一下問題出現(xiàn)的環(huán)境:我用Django寫了一個web服務端,姑且稱它為API吧。我在實際測試中發(fā)現(xiàn),通過get方式可以從API中獲得數(shù)據(jù),但是post方式卻無法獲取數(shù)據(jù),客戶端顯示服務器端出現(xiàn)403錯誤。

我找不出什么原因,只好新建了一個表單來測試post請求,我發(fā)現(xiàn)通過表單發(fā)送post請求時,頁面顯示403錯誤:Forbidden?CSRF verification failed. Request aborted.  我在網(wǎng)上查了一下,大多數(shù)人的解決方式是:在settings.py里面的MIDDLEWARE_CLASSES中加入‘django.middleware.csrf.CsrfResponseMiddleware’,我測試了一下,加入上面的代碼之后,表單提交確實沒有問題。但是我程序中調(diào)用API時,API仍然會返回403錯誤。我查了一下API中的代碼,確定不是我寫的代碼的問題。然后我就疑惑了。不過我有一種感覺,那就是settings.py里面的MIDDLEWARE_CLASSES的配置有問題。我又在網(wǎng)上查了一下,有人說把‘django.middleware.csrf.CsrfViewMiddleware’,去掉可以解決post方式出現(xiàn)的403錯誤。我試了一下,還真可以。


現(xiàn)在總結(jié)一下解決方法:

1.?在settings.py里面的MIDDLEWARE_CLASSES中加入“‘django.middleware.csrf.CsrfResponseMiddleware’,”;

2. 在settings.py里面的MIDDLEWARE_CLASSES中去掉“‘django.middleware.csrf.CsrfViewMiddleware’,”。

如果是解決表單提交時的出現(xiàn)的403錯誤“Forbidden CSRF verification failed. Request aborted.”,上面的兩種方式都可以解決,如果在其他程序里面單獨通過post方式請求數(shù)據(jù),那就只能用第二種方式解決。

另外我想補充的就是:第二種方式不需要以第一種方式為前提,也就是在去掉 “’django.middleware.csrf.CsrfViewMiddleware’,”后可以不用加入“’django.middleware.csrf.CsrfResponseMiddleware’”

分類:?python

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容