django post请求

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>
posted @ 2019-11-23 21:39  腹肌猿  阅读(1428)  评论(0编辑  收藏  举报