django post請求 403錯誤解決方法

2021-06-28 01:02:25 字數 1173 閱讀 3284

第一次用django做專案,遇到了很多問題。

今天遇到的問題是django在處理post請求時多次出現403錯誤,我弄了好久才把問題解決。

我先描述一下問題出現的環境:我用django寫了乙個web服務端,姑且稱它為api吧。我在實際測試中發現,通過get方式可以從api中獲得資料,但是post方式卻無法獲取資料,客戶端顯示伺服器端出現403錯誤。

我找不出什麼原因,只好新建了乙個表單來測試post請求,我發現通過表單傳送post請求時,頁面顯示403錯誤:forbidden csrf verification failed. request aborted.

我在網上查了一下,大多數人的解決方式是:在settings.py裡面的middleware_classes中加入『django.middleware.csrf.csrfresponsemiddleware』,

我測試了一下,加入上面的**之後,表單提交確實沒有問題。

但是我程式中呼叫api時,api仍然會返回403錯誤。我查了一下api中的**,確定不是我寫的**的問題。然後我就疑惑了。

不過我有一種感覺,那就是settings.py裡面的middleware_classes的配置有問題。我又在網上查了一下,有人說把『django.middleware.csrf.csrfviewmiddleware』,去掉可以解決post方式出現的403錯誤。

我試了一下,還真可以。

現在總結一下解決方法:

1. 在settings.py裡面的middleware_classes中加入「『django.middleware.csrf.csrfresponsemiddleware』,」;

2. 在settings.py裡面的middleware_classes中去掉「『django.middleware.csrf.csrfviewmiddleware』,」。

如果是解決表單提交時的出現的403錯誤「forbidden csrf verification failed. request aborted.」,上面的兩種方式都可以解決,如果在其他程式裡面單獨通過get方式請求資料,那就只能用第二種方式解決。

另外我想補充的就是:第二種方式不需要以第一種方式為前提,也就是在去掉「』django.middleware.csrf.csrfviewmiddleware』,」後可以不用加入「』django.middleware.csrf.csrfresponsemiddleware』,」

django中http請求報403解決方案

不再贅述,網上有的是 views中並沒有寫死到底是接收post還是get,我們可以自己進行判斷,如不判斷,都可以接收 如下 csrf exempt get請求返回如下 post請求返回如下 用postman等進行請求時,會報403 解決方案如下 1 由於我們的是測試介面,所以直接新增裝飾器csrf ...

403問題集錦

如果你是訪問乙個網頁出現這個問題 說明這個網頁是一般人是關閉的 禁止訪問的 你就不要看了 錯誤 403.1 403.1 錯誤是由於 執行 訪問被禁止而造成的,若試圖從目錄中執行 cgi isapi 或其他可執行程式,但該目錄不允許執行程式時便會出現此種錯誤。錯誤 403.2 403.2 錯誤是由於 ...

403 青蛙過河

乙隻青蛙想要過河。假定河流被等分為 x 個單元格,並且在每乙個單元格內都有可能放有一石子 也有可能沒有 青蛙可以跳上石頭,但是不可以跳入水中。給定石子的位置列表 用單元格序號公升序表示 請判定青蛙能否成功過河 即能否在最後一步跳至最後乙個石子上 開始時,青蛙預設已站在第乙個石子上,並可以假定它第一步...