2
我通過$.ajax()
發送一個POST請求到一個來自HTTP頁面的Django視圖 - 我使用了AJAX片段提供的CSRF here。我可以在Firebug中查看csrftoken cookie爲Secure
;我想這就是爲什麼POST請求的X-Csrftoken
標題被髮送爲null
。發送一個jQuery POST到Django視圖
有沒有什麼辦法可以實際訪問這個cookie的值?我目前正在繞過403錯誤(因爲POST
正在發送一個空的CSRF標記頭),所以在我的視圖中添加了@csrf_exempt
- 但是想要一個適當的CSRF方法。
更新爲清晰度:我是不是通過表格提交此數據。我只是在頁面上加載一個JavaScript文件(包含AJAX調用)時發送POST。
在您的示例中,'csrfmiddlewaretoken'是表單中的隱藏字段。然而,在我的情況下,我在頁面加載時發送這個POST請求(在加載包含'$ .ajax()'的JS時立即調用) - 即沒有表單。我的情況如何? – GPX
如果我理解正確,那麼您必須在視圖「before」前呈現csrf_token,並使用「GET」請求發送該視圖。或者如果這對你來說是不可能的,那麼你可以用一個在你的請求中「注入」csrf_token的中間件來做。 –
是的,'csrf_token'已經可用。我只是嘗試在AJAX調用中添加'csrfmiddlewaretoken',如第一個示例中所示,它起作用!這是記錄的嗎? – GPX