我想在Django中不使用表單元素的情況下發送一個ajax請求(通過Jquery,儘管我認爲這種情況無關緊要)。根據documentation,我應該可以通過使用ensure_csrf_cookie
修飾器來實現,但是,我得到了Error was: cannot import name ensure_csrf_cookie
。在沒有表單元素的情況下在Django中使用ajax請求
我正在使用以下導入from django.views.decorators.csrf import ensure_csrf_cookie
。
我沒有找到關於ensure_csrf_cookie
的大量文檔,所以任何幫助將不勝感激。
順便說一句,使用@csrf_exempt
按預期工作。
在此先感謝。
我不知道'ensure_csrf_cookie'是一個1.4 alpha版本。這就是爲什麼我得到導入錯誤(我正在運行1.3)。至於你的建議,我的JavaScript沒有嵌入到我的模板中,所以{{csrf_token}}不會替代實際的標記。你有解決這個問題的方法嗎? –
是的,在這裏實現jQuery函數:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax其中一個cookie放在客戶端瀏覽器上並帶有csrf_token。它應該在大多數情況下沒有這個新的1.4功能? –
太好了。我對使用這種方法有點猶豫,因爲它看起來很醜,但效果很好。順便說一下,我是否應該避免使用'csrf_exempt',或者在使用ensure_csrf_cookie或剛纔建議的選項時存在缺陷(安全方面)? –