django中提交post請求時候,需要攜帶CSRF,否則會報403錯誤,此時需要在form中添加
{% csrf_token %}或者<input type="hidden" id="csrfmiddlewaretoken" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
或者注釋掉settings.py -> MIDDLEWARE -> 'django.middleware.csrf.CsrfViewMiddleware',但是極不推薦!
用ajax發送post異步請求時,除了要添加{% csrf_token %},也需要在data中添加
下邊一種:
1.data:{"csrfmiddlewaretoken":$("[name='csrfmiddlewaretoken']").val()}
2.data:{'csrfmiddlewaretoken':"{{ csrf_token }}"}
實例,親測有效:
<script>
$(function () {
#get請求
$('#h1').click(function () {
$.ajax({
url:"{% url 'index:ajg' %}",
success:function (res) {
alert(res)
}
})
}),
$('#h2').click(function () {
var csrf = $('input[name="csrfmiddlewaretoken"]').val();
#post請求
$.ajax({
url:"{% url 'index:ajp' %}",
type:"post",
data:{
name:"pfeiliu",
age:18,
csrfmiddlewaretoken: '{{ csrf_token }}'
#csrfmiddlewaretoken:csrf
},
success:function (res) {
alert(res)
}
})
})
})
</script>