瀏覽器正在忽略響應cookie(csrftoken + seesionid)。 document.cookie()
返回空字符串和鉻顯影工具顯示this site has no cookies
即使當我收到set-cookie響應標頭時cookie也不會被寫入
如何解決這個問題?
FRONT:角2(本地主機:4200)
回到: Django的/ DRF(本地主機:8000)
登錄路線: [交] /登錄
響應標題:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:4200
Allow:POST, OPTIONS
Date:Wed, 05 Apr 2017 07:38:24 GMT
Server:WSGIServer/0.2 CPython/3.5.2
Set-Cookie:sessionid=d5v1mri12bniyvyqqt55ar8mfl9mr2jk; expires=Wed, 19-Apr-2017 07:38:24 GMT; HttpOnly; Max-Age=1209600; Path=/
Set-Cookie:csrftoken=5PcTF8aQ1O79gdrylZcGchnmKyRy6zwS3kL2jR5dY2CMdjPfEYyhkoJjOzsDZuvj; expires=Wed, 04-Apr-2018 07:38:24 GMT; Max-Age=31449600; Path=/
Vary:Accept, Cookie, Origin
X-Frame-Options:SAMEORIGIN
請求頭:
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8,fr;q=0.6
Connection:keep-alive
Content-Length:51
content-type:application/json
Cookie:sessionid=d5v1mri12bniyvyqqt55ar8mfl9mr2jk; csrftoken=sml3uocRIeiB3KfHSnNkJXBJn3QAFN3p7lLtdvhrALgUwoVnfNjGM5PIy2L3UHls
Host:127.0.0.1:8000
Origin:http://localhost:4200
Referer:http://localhost:4200/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/56.0.2924.76 Chrome/56.0.2924.76 Safari/537.36
確定爲seesionid,約csrftoken我需要訪問它(來源:4200)有什麼用javascript將其包含在下一個請求標題中,這可能嗎? –
Cookie自動包含在請求中,因此您不需要在腳本中訪問它們。查看您的請求日誌 - 此處包含csrftoken cookie。 –
我需要這樣做來添加CSRF令牌作爲請求頭(而不是cookie),這是csrf prevension的工作原理。標題鍵被稱爲「X-CSRFToken」,在我的情況下是空的,導致django回答403「缺少csrf標記或不正確」 –