问题:
Forbidden (CSRF token missing or incorrect.)
原因:
django,会对合法的跨域访问做这样的检验,cookies里面存储的’csrftoken’,和post的header里面的字段”X-CSRFToken’作比较,只有两者匹配,才能通过跨域检验。否则会返回这个错误:CSRF Failed: CSRF token missing or incorrect
解决方法:
1.直接将settings中’django.middleware.csrf.CsrfViewMiddleware’,注释掉(开发时最好别用,会产生系统漏洞,测试时随便玩玩)
2.直接在后端的api接口处,添加@csrf_exempt装饰器,此装饰器的作用是:将视图功能标记为不受CSRF视图保护,也不是特别好
3.前端在发送post请求的时候,同cookies中存储的token进行匹配
getCookie(name) {
var value = '; ' + document.cookie;
var parts = value.split('; ' + name + '=');
if (parts.length === 2) return parts.pop().split(';').shift()
},
{headers: {'X-CSRFToken': this.getCookie('csrftoken')}}
我是清茶!欢迎你和我一起讨论,我们下期见。