Django 解決403問題

2021-06-08 14:12:40 字數 1190 閱讀 3924

分兩種情況,一種是正常提交,另一種是用ajax提交

正常提交的話,每個表單後面都要有這個標籤,在views.py裡面相應的方法有兩種書寫方式:

方法一:

c = {}

c.update(csrf(request))

return render_to_response('news/add.html',c)

方法二:

return render_to_response('news/add.html', {},context_instance=requestcontext(request))

注意,對於方法二,一定要注意是在顯示表單之前那個方法上面加上context_instance=requestcontext(request),就像下面這樣:

對於登入視窗,顯示登入視窗對應的views方法為:

def index(request):

return render_to_response('account/login.html', {},context_instance=requestcontext(request))

注意是在這個方法的return函式裡面加上context_instance=requestcontext(request),而不是在響應提交按鈕的那個views方法裡面加。這一點尤其需要注意。

如果是ajax提交的話,要在整個專案的首頁,加上這一段**:

//新加處理ajax提交表單的處理方式

jquery(document).ajaxsend(function(event, xhr, settings) }}

return cookievalue;

}function sameorigin(url)

function safemethod(method)

if(!safemethod(settings.type) && sameorigin(settings.url))

});

views.py裡面正常書寫就行了,不需要做特殊處理:

return render_to_response('news/add.html')

關於csrf的處理一定要參照官方**:

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問題

前後端分離製作web開發經常會碰見報錯403問題,以下是解決方案 在後端的解決方案 在後端 中新增config檔案解決 將下面 複製到springboot的config包中解決 import org.springframework.context.annotation.configuration i...