本文目录一览:
- 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不是你所能控制的,所以是不行的。
【以上资料来自网络】