django中提交post请求时候,需要携带CSRF,否则会报403错误,此时需要在form中添加{% csrf_token %}
或者注释掉settings.py -> MIDDLEWARE -> ‘django.middleware.csrf.CsrfViewMiddleware‘,但是极不推荐!
用ajax发送post异步请求时,也需要在data中添加 在data中添加:
1. var csrf=$(‘input[name="csrfmiddlewaretoken"]‘).val()
data:{‘csrfmiddlewaretiken‘,csrf}
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>
原文:https://www.cnblogs.com/pfeiliu/p/11919829.html