1.跨域
跨域是指請求協議,域名,端口三者存在某幾個不同的時候就是跨域。
2.瀏覽器同源策略
同源策略限制了不同源之前的資源使用,比如cookie,請求頭等。參考(https://www.cnblogs.com/laixiangran/p/9064769.html)
3.跨域共享cookie
cookie是從服務端下發到客戶端(瀏覽器)的,服務端通過發送一個名為 Set-Cookie 的HTTP頭來創建一個cookie,作為 Response Headers 的一部分。
通過 Set-Cookie 指定的可選項(域、路徑、失效時間、secure標志)只會在「瀏覽器端」使用,它們都是服務器給瀏覽器的指示,以指定何時應該發送cookie。這些參數不會被發送至服務器端,只有name和value才會被發送。
客戶端會根據這個響應頭存儲Cookie信息。再次請求服務器時,客戶端會在請求信息中包含一個Cookie請求頭,而服務器會根據這個請求頭進行用戶身份、狀態等較驗。
使用cors來解決跨域問題時需要以下步驟:
a.服務端設置響應消息頭Access-Control-Allow-Credentials值為“true”。
同時,還需要設置響應消息頭Access-Control-Allow-Origin值為指定單一域名(注:不能為通配符“*”)。
b.客戶端需要設置Ajax請求屬性withCredentials=true,讓Ajax請求都帶上Cookie。
4.跨域使用自定義請求頭
a.服務端設置Access-Control-Expose-Headers (參考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Access-Control-Expose-Headers)
服務端設置Access-Control-Allow-Headers的值包含‘Access-Control-Expose-Headers’,比如我自定義的請求頭叫scdefinded:123456;

然后在請求中正常的設置自定義請求頭即可
瀏覽器中顯示

