我開始使用Jeditable插件使用Django和迅速跑進一個CSRF錯誤:「 CSRF驗證失敗的請求中止」,「CSRF令牌丟失或不正確」Django和JEditable:CSRF錯誤
截至發稿Jeditable插件似乎是在2008年上次更新的 - 在Django開始要求CSRF tokens用於POST請求之後的某個時間。
如何將Django CSRF數據添加到Jeditable?
我開始使用Jeditable插件使用Django和迅速跑進一個CSRF錯誤:「 CSRF驗證失敗的請求中止」,「CSRF令牌丟失或不正確」Django和JEditable:CSRF錯誤
截至發稿Jeditable插件似乎是在2008年上次更新的 - 在Django開始要求CSRF tokens用於POST請求之後的某個時間。
如何將Django CSRF數據添加到Jeditable?
這個問題的答案來自similar jeditable post on CSRF。 CSRF令牌可以添加到「submitdata」變量中。
擴大1st jeditable example的Django的崗位是這個樣子:
$(document).ready(function() {
$('.edit').editable('http://www.example.com/save.php', {
submitdata : { csrfmiddlewaretoken : "{{ csrf_token }}"}
});
});
注意,爲了顯示「csrf_token」值,而不是一個完整的表單字段中,「csrf_token」被包裹在{{ ..}} 代替 {% .. %}。
通過AJAX請求提供CSRF令牌的首選方法是將X-CSRFToken
標頭設置爲CSRF令牌的值。您需要修改構造的請求對象以設置標題值。
還提供了一個幫助函數,用於從cookie中獲取CSRF令牌,而不是依靠在模板中提供它,這大大簡化了事情,即您不必內聯運送JS代碼或設置令牌作爲模板本身的JS中的變量。
對於「{{..}}而不是{%..%}」+1,不知道:) – frnhr