当csrf在标头中时,禁止(CSRF cookie未设置。)

时间:2017-10-29 09:11:21

标签: django django-csrf

请求标题如下。

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:129
Content-Type:text/plain
Host:localhost:9000
Origin:http://localhost:8000
Referer:http://localhost:8000/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
X-CSRFTOKEN:t5Nx0SW9haZTeOcErcBDtaq6psqBfeyuX4LRQ1WOOXq5g93tQkvcUZDGoWz8wSeD

X-CSRFTOKEN在那里,但Django仍抱怨没有设置CSRF cookie。 Django怎么了?

在settings.py中,命名完全正确。

CSRF_HEADER_NAME = "HTTP_X_CSRFTOKEN"

1 个答案:

答案 0 :(得分:0)

检查CSRF_COOKIE_SECURE是否设置为true。

如果CSRF_COOKIE_SECUREtrue并且您通过http而不是https访问网站,则会收到此类错误消息。
或者您需要使用(仅用于测试)csrf_exempt