前两天遇到一个问题,百度解决了,今天又遇到了,稍微了解下,这是一个跨站问题,是一个django防范机制,报错如下:
一般来说,这可能发生在真正的跨站点请求伪造,或者Django的CSRF机制没有被正确使用的时候。对于POST表单,您需要确保:
您的浏览器正在接受cookie。
视图函数将一个请求传递给模板的渲染方法。
在模板中,每个POST表单中都有一个指向内部URL的{% csrf_token %}模板标记。
如果您没有使用CsrfViewMiddleware,那么您必须在任何使用csrf_token模板标签的视图以及那些接受POST数据的视图上使用csrf_protect。
表单有一个有效的CSRF令牌。在登录到另一个浏览器选项卡或在登录后点击后退按钮后,您可能需要用表单重新加载页面,因为登录后会旋转令牌。
你会看到这个页面的帮助部分,因为在你的Django设置文件中有DEBUG = True。将其更改为False,将只显示初始错误消息。
您可以使用CSRF_FAILURE_VIEW设置自定义此页面。
正如报错提示所言,我们可以有两个方法:
1.去setting里注释掉 # ‘django.middleware.csrf.CsrfViewMiddleware’
等于是将这个跨站的防范机制的中间件取消掉。便不这个报错,不过如果真正遇到跨域的问题,我们可能就不知道是报这个错,不太建议。
2.在表单下面加上{% csrf_token %} 即可



