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>