本文目錄一覽:
- 1、如何用js實現跨域獲取cookie
- 2、怎麼用js跨域讀到iframe里的cookie
- 3、js能讀取跨域的cookie嗎
- 4、js控制cookie跨域
- 5、js本地能寫入別的域名下的cookie嗎
如何用js實現跨域獲取cookie
正常情況下,瀏覽器禁止跨域獲取cookie
一般通過sso服務可以實現取得跨域cookie,思路如下:
域A頁面訪問位於域A的伺服器,對許可權進行驗證
域A伺服器於域B伺服器通信,記錄一個唯一的加密串用作身份驗證域(並將cookie信息發送給域B伺服器)
域A伺服器返回302跳轉,跳轉到域B下,並將加密串作為url的一部分
頁面由域A跳轉到域B,域B伺服器通過加密串獲取到事先從域A伺服器上得到的cookie信息,並在響應頭中添加set-cookie欄位設置cookie
怎麼用js跨域讀到iframe里的cookie
第一種很簡單:
將系統B設置為可信站點。
第二種:
IE設置隱私策略:在Internet選項-隱私-高級,將「替代自動cookie處理」的選項打上,並「第一方cookie」和「第三方cookie」 都設置為 接受;如下圖:
第三種:
在response的head上增加p3p協議;
java: 增加一個filter ,在 doFilter 部分:
Java代碼
代碼如下 複製代碼
HttpServletResponse res = (HttpServletResponse) response;
res.setHeader(「P3P」,」CP=CAO PSA OUR」);
js能讀取跨域的cookie嗎
正常情況下,瀏覽器禁止跨域獲取cookie
一般通過sso服務可以實現取得跨域cookie,思路如下:
域A頁面訪問位於域A的伺服器,對許可權進行驗證
域A伺服器於域B伺服器通信,記錄一個唯一的加密串用作身份驗證域(並將cookie信息發送給域B伺服器)
域A伺服器返回302跳轉,跳轉到域B下,並將加密串作為url的一部分
頁面由域A跳轉到域B,域B伺服器通過加密串獲取到事先從域A伺服器上得到的cookie信息,並在響應頭中添加set-cookie欄位設置cookie
js控制cookie跨域
例:a.b.com和c.b.com兩個站,建立方式如下: a.b.com站下建a.html。關鍵代碼如下: script type=”text/javascript” function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); alert(exdate.getDate()+expiredays); document.cookie=c_name+ “=” +escape(value)+((expiredays==null) ? “” : “;expires=”+exdate.toGMTString())+”;path=/;domain=b.com”; } window.onload=function(){ setCookie(“listallwjh”,”sfwjh”); alert(“Cookie設置成功!”); } /script c.b.com站下建a.html。關鍵代碼如下 script function getCookie(c_name) { if (document.cookie.length0) { c_start=document.cookie.indexOf(c_name + “=”); if (c_start!=-1) { c_start=c_start + c_name.length+1 ; c_end=document.cookie.indexOf(“;”,c_start); if (c_end==-1) c_end=document.cookie.length; return unescape(document.cookie.substring(c_start,c_end)); } } return “”; } window.onload=function(){ var c_name=”listallwjh”; if(getCookie(“listallwjh”)!=null){ alert(getCookie(“listallwjh”)); } } /script 這兩個一個也面是設置,一個是取,只要保證兩個規則一樣,就行。運行,結果:OK! 註:這兩個方法有時候也可以寫在一起,先判斷cookie是否存在,在創建
js本地能寫入別的域名下的cookie嗎
首先在遊覽器中,跨域是不能操作cookie的,例如a.com是無法寫入到b.com中的,更何況本地了,不過,也是有類似的解決方案的:
不過,以上前提是a.com和b.com都是在自己可控的情況下,比如你是example.com,但你想寫入baidu.com,由於baidu.com不是你所能控制的,所以是不行的。
【以上資料來自網路】
原創文章,作者:WSDZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140170.html