key
- 鍵
value
- 值
expires
- 過期時間
domain
- 主域,不可以跨主域設(shè)置cookie,不過可以通過一些技術(shù)手段讓,讓需要被跨的那個站,配合一下進(jìn)行實現(xiàn),請繼續(xù)往下看,下面有個解決方案1,可以讓你做到跨域設(shè)置cookie
path
- 路徑建議設(shè)置為/,這樣就可以在別的路徑下也可以讀寫
httponly
- 后端用這個屬性設(shè)置cookie,前端用js無法讀取被后端設(shè)置的cookie
跨域
跨域訪問,簡單來說就是 A 網(wǎng)站的 javascript 代碼試圖訪問 C網(wǎng)站,包括提交內(nèi)容和獲取內(nèi)容。由于安全原因,跨域訪問是被各大瀏覽器所默認(rèn)禁止的??缬蚴菫g覽器的限制。
那么問題來了, 例如我當(dāng)前在訪問A站點,因為我等會兒要跳到C站點去登陸,但是我想知道我登陸前做了什么
- 解決方案1 - 已實踐,此方案行得通
- 把這些信息記錄到C站點的cookie上,這時候就需要跨域設(shè)置cookie
- 首先,我需要和C站點的后端配合,在他那邊要有一個頁面setCookie.html,負(fù)責(zé)接收postMessage傳遞過去的消息,并設(shè)置cookie
- 其次,我當(dāng)前站點有個隱藏的iframe,iframe的scr是C站點里的setCookie.html,當(dāng)我執(zhí)行一些操作想要記錄的時候,我就通過這個iframe去postMessage一些信息過去,對方負(fù)責(zé)接收并設(shè)置cookie,就可以達(dá)到跨域設(shè)置cookie的效果了
- 解決方案2 - 未實踐,按理說行的通
- 當(dāng)我執(zhí)行一些操作想要記錄的時候,我就直接打C站的接口,讓C站自行記錄,但是這個接口要允許跨域,其實不允許跨域也沒關(guān)系,畢竟我的消息是能傳過去的,跨域?qū)е碌膯栴}只是收到響應(yīng)不能使用罷了
- 解決方案2 - 未實踐,按理說行的通
- 當(dāng)我執(zhí)行一些操作想要記錄的時候,我就直接打A站的接口,讓A站的后端,通過服務(wù)端通信把數(shù)據(jù)帶給C站的后端,當(dāng)然這就是他們兩個后端的事了,但是無論哪一種方案,都少不了你前端,看把你厲害的,先自行得瑟一會兒把