如何用js实现跨域获取cookie

如何用js实现跨域获取cookie,第1张

正常情况下,浏览器禁止跨域获取cookie

一般通过sso服务可以实现取得跨域cookie,思路如下:

域A页面访问位于域A的服务器,对权限进行验证

域A服务器于域B服务器通信,记录一个唯一的加密串用作身份验证域(并将cookie信息发送给域B服务器)

域A服务器返回302跳转,跳转到域B下,并将加密串作为url的一部分

页面由域A跳转到域B,域B服务器通过加密串获取到事先从域A服务器上得到的cookie信息,并在响应头中添加set-cookie字段设置cookie

windowonload

=

function

GetCookie()

{

var

CookieStr

=

documentcookie;

//获取你写的cookiecookie内容如:CookieInfo=Name=GTweb&Version=20

var

GetName

=

CookieStrindexOf("Name")

+

5;

//获取到cookie中

Name=

的位置

var

mark

=

CookieStrindexOf("&");

//获取到cookie中符号的&的位置

if

(CookieStrsubstring(GetName,

mark)

!=

"GTweb")

{

//判断cookie中"Name="和"&"之间的字符串是否等于GTweb,如果不等于则跳转到百度的首页,等于那就没任何 *** 作

windowlocation

=

">

var Cookies = {};

///

设置Cookies

/

Cookiesset = function(name, value){

var argv = arguments;

var argc = argumentslength;

var expires = (argc > 2) argv[2] : null;

var path = (argc > 3) argv[3] : '/';

var domain = (argc > 4) argv[4] : null;

var secure = (argc > 5) argv[5] : false;

documentcookie = name + "=" + escape (value) +

((expires == null) "" : ("; expires=" + expirestoGMTString())) +

((path == null) "" : ("; path=" + path)) +

((domain == null) "" : ("; domain=" + domain)) +

((secure == true) "; secure" : "");

};

///

读取Cookies

/

Cookiesget = function(name){

var arg = name + "=";

var alen = arglength;

var clen = documentcookielength;

var i = 0;

var j = 0;

while(i < clen){

j = i + alen;

if (documentcookiesubstring(i, j) == arg)

return CookiesgetCookieVal(j);

i = documentcookieindexOf(" ", i) + 1;

if(i == 0)

break;

}

return null;

};

///

清除Cookies

/

Cookiesclear = function(name) {

if(Cookiesget(name)){

var expdate = new Date();

expdatesetTime(expdategetTime() - (86400 1000 1));

Cookiesset(name, "", expdate);

}

};

CookiesgetCookieVal = function(offset){

var endstr = documentcookieindexOf(";", offset);

if(endstr == -1){

endstr = documentcookielength;

}

return unescape(documentcookiesubstring(offset, endstr));

};

//设置cookie值

//Cookiesset("username","张三");

//读取Cookies

//Cookiesget("username");

以上就是关于如何用js实现跨域获取cookie全部的内容,包括:如何用js实现跨域获取cookie、关于js读取cookie、js如何读取cookie,谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9737560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存