我正在嘗試創建一個客戶端驗證,以查看用戶名是否在註冊時被採用。驗證應該在用戶提交表單之前進行。如何在jQuery驗證插件中傳遞Django csrf標記?
爲了實現這一目標,我使用jQuery驗證插件:http://jqueryvalidation.org/
我遇到的問題是,我得到一個403錯誤:
POST example.com/check-username 403 (FORBIDDEN)
這是代碼客戶端驗證: $(文件)。就緒(函數(){
$('#register-form').validate({ // initialize the plugin
rules: {
username: {
required: true,
remote: {
url: "/check-username",
type: "post",
data: {
csrfmiddlewaretoken: document.getElementsByName('csrfmiddlewaretoken')[0].value,
username: function() {
return $("#id_username").val();
}
}
}
}
}
});
});
這裏是我的驗證功能views.py:
def check_username(request):
username = request.POST.get('username', None)
if not username:
return HttpResponseBadRequest("Invalid username")
return User.objects.exists(username=username)
我懷疑這是一個csrf錯誤,但我不太確定如何做到這一點與jQuery驗證插件一起工作。我會如何去做這件事?
你看了[docs](https://docs.djangoproject.com/en/1.8/ref/csrf/)嗎? – Sayse
特別是關於[Ajax](https://docs.djangoproject.com/en/1.8/ref/csrf/#ajax)的部分,它提供了示例代碼,顯示瞭如何執行此操作。 –