当我们的前端项目和后端项目是跨域的时候,前端向后端传数据会出现CSRF Failed: CSRF token from the 'X-Csrftoken' HTTP header has incorrect length的情况,以下是解决方法:
这里前端以axios请求为例,在请求头中加入浏览器cookie中csrftoken的值,可以使用自己创建的getCookie方法便捷获取:
浏览器中的csrftoken
axios请求中加入X-CSRFToken请求头,值为浏览器中名为csrftoken的值
成功解决!!!
补充:若出现Origin checking failed - http://localhost:xxxx does not match any trusted origins的问题,则是后端未将前端的端口加入csrf信任的区域内,解决方法以django为例:
在settings.py文件中加入
CSRF_TRUSTED_ORIGINS = ['http://localhost:xxxx'] 即可解决