導航:首頁 > IDC知識 > 跨域名共享cookie

跨域名共享cookie

發布時間:2020-11-11 17:26:34

1、如何用js實現跨域獲取cookie

正常情況下,瀏覽器禁止跨域獲取cookie
一般通過sso服務可以實現取得跨域cookie,思路如下:
域A頁面訪問位於域A的伺服器,對許可權進行驗證
域A伺服器於域B伺服器通信,記錄一個唯一的加密串用作身份驗證域(並將cookie信息發送給域B伺服器)
域A伺服器返回302跳轉,跳轉到域B下,並將加密串作為url的一部分
頁面由域A跳轉到域B,域B伺服器通過加密串獲取到事先從域A伺服器上得到的cookie信息,並在響應頭中添加set-cookie欄位設置cookie

2、如何跨域傳遞 cookie

設置 Allow-Control-Allow-Credentials ,使得跨域可以帶 Cookie ;同時要設置 Allow-Control-Allow-Origin ,此時不能用通配符。

3、什麼是cookie跨域問題

在Cookie規范上說,一個cookie只能用於一個域名,不能夠發給其它的域名。因此版,如果在瀏覽器中對權一個域名設置了一個cookie,這個cookie對於其它的域名將無效。如果你想讓你的用戶從你的站點中的其中一個進行登錄,同時也可以在其它域名上進行登錄,這可真是一個大難題。這就是跨域問題。

4、Java cookie的跨域問題?怎麼在前端域名下添加cookie

假設你的前端站點域名為www.xxx.com 後端數據介面域名為 api.xxx.com

通常有以下2種解決方案

cookie寫入的時候寫入xxx.com域下不要寫到www.xxx.com或者api.xxx.com下

在www.xxx.com中配置反向代理,將www.xxx.com/api代理到api.xxx.com,然後cookie就正常的寫到www.xxx.com域下就可以了

5、jsp和php跨域共享cookie,代碼如下,jsp中設置cookie,php讀取不到

aa.accs.com和bb.accs.com屬於不同的domain。你可以試試在java中設置domain為:
.accs.com
或者
accs.com

6、如何刪除跨域的cookie

伺服器端刪除跨域cookie,思路是新建一個同名的Cookie,然後指定要刪除的域名,Expires屬性的時間小於當前時間即可,然後添加到Response.Cookies里邊,原來的Cookie即可置空。

HttpCookie myCookie = Request.Cookies["userInfo"];

if (myCookie != null)

{

myCookie.Domain = "a.domain";

myCookie.Expires = DateTime.Now.AddYears(-1);

Response.Cookies.Add(myCookie);

}

7、單點登錄其實就是在cookie保存一個token,但是cookie不能跨域啊?

同一平台的兩個子系統,一般擁有相同的二級域名。只要將cookie的域名指定為此二內級域名,那麼cookie在這兩容個子系統內都適用。
例如:系統A的域名為a.example.com,系統B的域名為b.example.com。將單點登錄票據cookie的域名指定為example.com,那麼訪問系統A或系統B瀏覽器都會自動帶上此cookie。
即便兩個子系統擁有完全不同的域名,也可以有其他解決方案,例如CAS的TGT+ST。

8、post不發送跨域cookies

cookie是不能跨域的,那些能獲取你相關信息的是因為加入了百度聯盟或者廣告聯盟,各自網內站會容自動提交你的一些cookie信息給百度或者聯盟,比如你搜了什麼,最近多逛哪些網站。然後百度把肌互冠就攉腳圭協氦茅這些cookie共享給聯盟里的網站。
不過這樣做的不多,通常是百度廣告直接自己分析這些數據。

9、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.length>0) { 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是否存在,在創建

10、cookie跨域,二級域名之間如何共享

|TP5解決方案
// +----------------------------------------------------------------------
// | Cookie設置
// +----------------------------------------------------------------------
'cookie' => [
// cookie 名稱前綴
'prefix' => '',
// cookie 保存時間
'expire' => 0,
// cookie 保存路徑
'path' => '/',
// cookie 有效域名
'domain' => '', // 這里是重點
// cookie 啟用安全傳輸
'secure' => false,
// httponly設置
'httponly' => '',
// 是否使用 setcookie
'setcookie' => true,
],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
其它
cookis 設置,讀取方法,跨域[二級域名]
$time =30;
$domain ='.111cn.net';
setcookie("abcde","aaaaaa");//最簡單的cookie設置方法
setcookie('load','www.111cn.net',time()+3600*24,'/','.111cn.net'); //這里可以設置二級域名
$cookis = $_COOKIE['loadDomain'];//讀取域名
print_r( $cookis );
/*
來看幾個例子:
簡單的:
SetCookie("MyCookie", "Value of MyCookie");
帶失效時間的:
SetCookie("WithExpire", "Expire in 1 hour", time()+3600);//3600秒=1小時
什麼都有的:
SetCookie("FullCookie", "Full cookie value", time()+3600, "/forum", ".111cn.net", 1);
*/
?>
<script language="javascript教程">
function setcookie(name,days)
{
var url = document.domain;
var exp = new Date();
exp.setTime(exp.getTime() + days*24*60*60*1000);
document.cookie = name + "="+ escape(url) +";expires="+ exp.toGMTString();
}
function getcookie(name)
{
var arr = document.cookie.match(new RegExp("[sS]*"+ name +"=([^;]*)"));
alert(arr);
if(arr != null)
return unescape(arr[1]);
return null;
}
</script>
//php教程 cookies
//asp教程 cookies
Response.Cookies("Uto")("UtorName")=UtorName
Response.Cookies("Uto")("UtorPwd")=UtorPwd
Response.Cookies("Uto").Domain="utoper.com"
Response.Cookies("Uto").Secure =False

與跨域名共享cookie相關的知識