跨域获取cookie方法
跨域获取cookie方法
在路上飞奔的菜鸟 发表于5个月前
跨域获取cookie方法
  • 发表于 5个月前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 跨域获取cookie,不同网站保持登录问题 ie10及以下 会默认禁止cookie 可以把test.b.com的cookie先保存到session中,然后获取.
  1. 子域名下:

这里输入代码子域名下的cookie可以通过设置cookie.setDomain("xxx")(注:xxx为根域名,例如text.com),来实现共享cookie;

  1. 不同域名下:

通过jsonp请求.do来返回参数:

     var url = 'test.do?jsoncallback=?';
	    $.getJSON(url, params, function(json){	
	});

jsoncallback=? 该段表示,返回参数,会自动生成一个返回函数;

示例:

客户端

$.getJSON("http://test.b.com/tools/isLogin.jsp?jsoncallback=?",function(data){
				alert(data);	
	});

服务器端:isLogin.jsp 把数据封装成 json的格式

String jsoncallback = request.getParameter("jsoncallback");
out.print(jsoncallback+"({userid:"+userid+",muserid:"+muserid+"})");

通过$.getScript请求来返回cookie:

例:test.a.com网站需要获取test.b.com的cookie,

第一步:首先在test.b.com下写一个请求jsp,并且以js的格式输出到页面:

        String userid = CookieUtil.getCookieNoDes(request, "chatName");
	    String muserid = MCookieUtil.getCookie(request, "m-userid");
	    out.print("var userCookie={userid:'"+userid+"',muserid:'"+muserid+"'};");

输出的格式:

var userCookie={userid:'null',muserid:'null'};

第二步:在test.a.com下用$.getScript获取请求:

        $.getScript('http://test.b.com/isLogin.jsp?'new Date(), function(){    
    		console.log(userCookie.userid,userCookie.muserid);    
	    }); 

从数据显示,已经从test.b.com下获取到cookie的值.

demo下载地址:链接:http://pan.baidu.com/s/1nv83bxn 密码:g9qi

共有 人打赏支持
粉丝 1
博文 43
码字总数 21194
×
在路上飞奔的菜鸟
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: