2017-01-11 1 views
0

api로 AJAX를 통해 게시물 요청을 보내고 있습니다 (현재 페이지와 api 모두 동일한 호스트 아래 있음). 나는 csrf failed: csrf token missing or incorrect error을 얻고있다. 1.8에서 django 1.10으로 업그레이드했을 때 이런 일이 발생했습니다. 난 장고 1.9뿐만 아니라 오류 1.9에 계속 확인했다. 여기에 상세 컬은 다음과 같습니다CSRF 실패 : 1.8에서 django 1.10으로 업그레이드 한 후 CSRF 토큰이 없거나 잘못되었습니다.

curl 'https://tru-staging.com/pagemaker/api/v1/carousel/slide/' -H 'Pragma: no-cache' -H 'Origin: https://tru-staging.com' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.8,ar;q=0.6' -H 'Authorization: Token undefined' -H 'Content-Type: application/json;charset=UTF-8' -H 'Accept: application/json, text/plain, */*' -H 'Cache-Control: no-cache' -H 'X-CSRFToken: UMQPAIb1OTl7MyiQLJttdKE8xOLz35pMaHeNGMMDqy0Jn3x8SpbaEUmzOQk7Fppr' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36' -H 'Cookie: _ga=GA1.2.2131330908.1484113382; sessionid=nnxqi67j18tblt985vayyz4ssyhdnfjm; csrftoken=o6gjW1Sxb1X23hI9RurDIAXjSuEbbgbMQJtMQyS2gT1yTnCGF80rmmB8pwSOSKKj' -H 'Connection: keep-alive' -H 'Referer: https://tru-staging.com/68/school_landing/' --data-binary '{"order":4,"carousel":736}' —compressed

답변

0

X-CSRFToken 헤더 위의 명령 줄에서 csrftoken 쿠키 값과 일치하지 않습니다. 특정 오류 메시지에서 오는 :

https://github.com/django/django/blob/master/django/middleware/csrf.py#L313

이는 CSRF가 일치하지 않는 참으로 토큰을 나타냅니다.

+0

그 원인은 무엇입니까? – sachitad

+0

AJAX 전화를 걸기 전에 X-CSRFToken을 어떻게 설정하고 있습니까? 나는 그것을 잡는 getCookie() 함수가 있다고 가정하고 있습니까? – Scovetta

+0

나는 그렇다. 저는 다음과 같은 설정 헤더입니다 : https://gist.github.com/sachitad/793b96e56ca719f77bae687085bcd99a – sachitad

관련 문제