通過cors跨域時,瀏覽器不會自動帶上cookie。想要傳遞cookie,需要客戶端與服務端共同設定。
服務端需要設定 access-control-allow-origin
該欄位表明服務端接收哪些網域名稱的跨域請求,如果值為 * 號,表示接收任意網域名稱的跨域請求。
當需要傳遞cookie時,access-control-allow-origin 不能設定為 * 號,必須為具體的乙個網域名稱。
同時,服務端需要設定 access-control-allow-credentials 為 true。表示服務端同意傳送cookie。
客戶端需要設定 credentials
當使用ajax傳送請求時,需要設定 withcredentials 為true,如下
當使用fetch傳送請求時,需要設定 credentials 為include,如下
fetch('http://localhost:8080/getmessage', );
在測試中發現,即使服務端不設定 access-control-allow-credentials ,也同樣可以傳遞cookie,只是客戶端會請求失敗,丟擲錯誤。
Django跨域請求無法傳遞Cookie
問題 在使用 django vue 進行前後端分離開發時,發現在跨域訪問情況下,後台 httpresponse 在使用set cookie方法後,瀏覽器無法獲取 cookie。解決方法 django 端使用django cors headers解決跨域問題,修改 settings.py 檔案。具體方...
Django跨域請求無法傳遞Cookie的解決
在使用 django vue 進行前後端分離開發時,發現在跨域訪問情況下,後台 httpresponse 在使用 set cookie 方法後,瀏覽器無法獲取 cookie。django 端使用 django cors headers 解決跨域問題,修改 settings.py 文gwawcfhwm...
跨域傳遞cookie
cookie基本使用 首先,需要在服務端返回的頭部資訊中增加 response.setheader access control allow origin cors請求預設不傳送cookie和http認證資訊。如果要把cookie發到伺服器,一方面要伺服器同意,指定access control al...