本地运行时一切正常,名为csrf_token的cookie存在。
放在服务器上通过nginx反向代理,使用https域名访问时,发现浏览器不存在名为csrf_token的cookie,导致我的post失效,报错Forbidden(CSRF cookie not set)。
(还有一个神奇的现象,当我把csrf中间件关闭时,显然可以成功访问了,因为不必验证了。但是当我把csrf中间件再次打开后,原来没有的csrf的Cookie存在了,我从此可以成功通过csrf验证了。)
如图是post方法
如图是getCookie函数
如图是网页部分内容,可以看到表单存在隐藏csrf输入,但cookie中不存在csrf_token,导致getCookie不起作用