Django ajax post方式处理
2018-09-02 本文已影响6人
Python野路子
post方式不同于get方式可以被django直接得到,因为django为post加入了csrf保护,提交的时候会出现:
image.png
查看官网https://docs.djangoproject.com/zh-hans/2.0/ref/csrf/
在github下载对应js库或者引入
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
然后再请求里面设置请求头:
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
var csrftoken = Cookies.get('csrftoken');
xhr.setRequestHeader("X-CSRFToken", csrftoken);
还需要在引入js的页面任意位置加上{% csrf_token%}
目的是设置产生一个csrftokey种下cookie,然后当你提交表单时会把本地cookie里的csrftokey值给提交服务器,服务器判断只有有效的csrftokey值才处理请求。