前言
今天学习Django框架,用ajax向后台发送post请求,直接报了403错误,说CSRF验证失败;先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了;很显然,用ajax发送post请求这样就白搭了;
文末已经升级更简单的方法,上面的略显麻烦
上网上查了一下,看了几个别人的博客,才知道官方网站也早有介绍解决办法,大致流程就是:
就是新版建一个JavaScript文件,然后把网上给的代码粘贴进去,然后在你使用ajax的网页把它引入一下;当然,如果你在网上找到的解决代码共含JQuery的话,那就需要在引入的JQuery之后引入了(毕竟解决代码不唯一,网上一找一堆,基本都是对的,原生JS和带JQuery的都有);
文末会附上我使用的JS相关代码,也可以去网上找!
如果上述没有解决你的问题,那就介绍你和我踩了同样的一个小坑........
用了上面查到的方法,直接就解决了我的问题,但是随着我对代码修改改、清除了相关网页的cookie,吃个饭再运行,竟然又报403的CSRF错误了;百思不得其解的我又去Django官方网站看了一下相关部分的文档,一堆英文看看大概找到了问题;
我发现我把html网页里面原先加的 {% csrf_token %} 这个东西给删掉了,加上谷歌的相关网页cookie被我一清除,csrftoken就被咔嚓了,再刷新版网页,去html网页里也找不到 {% csrf_token %} ,没有了csrfto