iframe標(biāo)簽嵌入頁面,cookie跨域問題

在工作中第一次遇到跨域問題,iframe標(biāo)簽嵌入另一個(gè)系統(tǒng)的url,需要把后臺返回的鍵值對存儲到cookie里面,但要設(shè)置domain屬性;

我直接在代碼里面寫

document.cookie = 'ecc_acc=arcsabceddsf; domain=.jianshu.com';?

document.cookie='acc_key=asflnsidfsif; domain=.jianshu.com';

在本地和后臺聯(lián)調(diào)時(shí),輸出document.cookie設(shè)置的domain沒生效,一直是10.117...我的ip;

看到一個(gè)直接顯示設(shè)置doucment.domain='.jianshu.com';結(jié)果控制臺報(bào)錯(cuò):無法在document上設(shè)置domain屬性,‘.jianshu.com’不是‘10.117...’的后綴,突然明白了,他們不再同一個(gè)父級域名,我本地測試的url地址是10.117.xx.x:8080/spa/example,要訪問的是pbs.stg.jianshu.com,設(shè)置了瀏覽器也不生效。

那怎樣在本地測試是否能加載要訪問的網(wǎng)站呢?于是上網(wǎng)查資料,有的說要修改system32里面的hosts文件,

修改后還是沒有效果,本地啟動(dòng)前端代碼的時(shí)候,在dev-server.js中還有個(gè)url的地址的配置,于是把這里的url地址換成測試環(huán)境的地址,本地模擬測試環(huán)境的地址,2個(gè)地址在同一個(gè)父級域下,再把要設(shè)置的cookie的域名設(shè)置為同一個(gè)父級域名,就可以加載到pbs.stg.jianshu.com的頁面了。

假如測試環(huán)境域名為:were.stg.jianshu.com;

?例如我的系統(tǒng)是wee-ree.jianshu.com; 嵌入的系統(tǒng)是icre.dbs.jianshu.com;?

.jianshu.com是一級域名(父級域名)

wee.ere.jianshu.com二級域名(子域名)

wee.dfs.jianshu.com 二級域名(子域名)

父級域名下的cookie是共享的,子域名都可以獲取到cookie值,也可以設(shè)置父級域的cookie值。但是

設(shè)置了wee.df.jianshu.com子域名下的cookie,wee.dffs.jianshu.com訪問不到;

例如我設(shè)置cookie如下

document.cookie='username=zhangsan; domain=.jianshu.com';

則wee.were.jianshu.com和icre.dbs.jianshu.com都可以訪問這個(gè)username


cookie設(shè)置

cookie的domain屬性涉及到用戶單點(diǎn)登錄問題?

通常在實(shí)現(xiàn)單點(diǎn)登錄的時(shí)候會(huì)經(jīng)常用到這個(gè)屬性,通過在父級域設(shè)置Cookie,然后在各個(gè)子級域拿到存在父級域中的Cookie值。比如剛才設(shè)置的username屬性,在wee.dbs.jianshu.com下同樣可以訪問到,用戶不用重新登錄就可以拿到第一次登錄進(jìn)來時(shí)候的用戶信息,因?yàn)檫@些用戶信息都是存在父級域".jianshu.com"下面,其他頁面同yang可以拿到。

當(dāng)我在wee.dfdf.jianshu.com這個(gè)子域名下設(shè)置: document.cookie='age=24; domain=.wee.wee.jianshu.com';這個(gè)age屬性則在wee.ree.jianshu.com下是看不到的。要解決cookie的跨域問題,即把要設(shè)置的鍵值對放到父級域的cookie里面即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是 Cookie “cookie 是存儲于訪問者的計(jì)算機(jī)中的變量。每當(dāng)同一臺計(jì)算機(jī)通過瀏覽器請求某個(gè)頁面時(shí),就...
    恩德_b0c2閱讀 541評論 0 3
  • 點(diǎn)擊鏈接加入QQ群 522720170(免費(fèi)公開課、視頻應(yīng)有盡有):https://jq.qq.com/?_wv=...
    測試幫日記閱讀 1,739評論 0 3
  • 需求:在某頁面add的cookie在另一個(gè)頁面卻獲取不到?!y道cookie只對當(dāng)前頁面有效?學(xué)習(xí)后發(fā)現(xiàn),coo...
    拾壹北閱讀 9,001評論 1 8
  • 原文鏈接:https://segmentfault.com/a/1190000004556040[https://...
    R_X閱讀 483評論 0 1
  • 1. 什么是跨域? 跨域一詞從字面意思看,就是跨域名嘛,但實(shí)際上跨域的范圍絕對不止那么狹隘。具體概念如下:只要協(xié)議...
    他在發(fā)呆閱讀 864評論 0 0

友情鏈接更多精彩內(nèi)容