Js跨一级域名同步cookie

1. 纯Js同步两个域名下的cookie

document.cookie = "name=" + "value;" + "expires=" + "datatime;" + "domain=" + "" + "path=" + "/path" + "; secure";//name     Cookie名字//value    Cookie值//expires    有效期截至(单位毫秒)//path    子目录//domain    有效域//secure    是否安全

拿淘宝与天猫举例,淘宝登录后跳转到天猫页面,天猫页面有一个iframe,请求任意页面

<iframe src=‘http://localhost:14373/test/Index‘ width=‘100‘ height=‘100‘ style="display:none"></iframe>

淘宝页面中js获取当前页面的cookie并作为参数跳转回天猫页面

window.location = "http://localhost:20272/GetCookie/Index?" + document.cookie;

天猫页面获取url中的地址并将cookie写入本域名下

 var url = window.location.toString();//获取地址
 var get = url.substring(url.indexOf("liuph"));//获取变量和变量值
 var idx = get.indexOf("=");//获取变量名长度
 if (idx != -1) {
     var name = get.substring(0, idx);//获取变量名
     var val = get.substring(idx + 1);//获取变量值
     setCookie(name, val, 1);//创建Cookie
 }

2. 经过后台处理同步cookie

天猫页面直接请求淘宝的后台方法

$.ajax({
        type: "GET",
        dataType: ‘jsonp‘,
        jsonp: ‘jsonp_callback‘,
        url: ‘http://localhost:14373/test/GetString?cookie=?‘,
        success: function (da) {
            alert(da.name + "|" + da.value);
        }, error: function (){
                alert("ERROR");
        }
});

淘宝后台代码

public void GetString()
{
        HttpCookie cookie = Request.Cookies["liuph"];
        var response = HttpContext.Response;
        response.ContentType = "text/json";
        string str = Request.QueryString["cookie"];//JS接受变量名
        response.Write(str + "({\"name\":" + "\"" + cookie.Name + "\"" + ",\"value\":" + "\"" + cookie.Value + "\"})");//返回数据
}

ok,同步结束

时间: 2024-08-01 08:34:51

Js跨一级域名同步cookie的相关文章

php 跨二级域名 设置cookie

登入也设置cookie setcookie('user_id', authlogin("user_id", "ENCODE"), time()+(3600*24*30), "/", ".lfb365.com"); authlogin()方法为将user_id进行编码,非内置方法 退出页清除cookie setcookie("user_id", "", time()-3600, "

【JavaScript】JS跨域设置和取Cookie

cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie 的值.本文主要JS怎样读取Cookie以及域的设置. AD: 在Javascript脚本里,一个cookie 实际就是一个字符串属性.当你读取cookie的值时,就得到一个字符串,里面当前WEB页使用的所有cookies的名称和值.每个cookie除了 name名称和value值这两个属性以外,还有四个属性.这些属性是:

js跨域

第一次写博客,好紧张,不知道能写成啥样,哈哈哈. 自己的一知片解,有错请多多指教,嘻嘻嘻. 一.何为跨域? 只要协议.域名.端口后任何一个不同,就是跨域. 举个例子: http://www.example.com 协议不同 https://www.example.com http://www.example.com 域名不同 http://www.test.com http://www.example.com 端口不同 http://www.example.com:81 注意:ip相同,域名不同

JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对 http://store.company.com/dir/page.html 同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 1.通过jsonp跨域[解决ajax跨域] 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的

使用 P3P 规范让 IE 跨域接受第三方 cookie

前两天帮同事处理一个 js 跨域问题,使用 jsonp 跨域提交用户名密码请求,实现自动登录第三方网站,即 SSO(single-sign-on) 单点登录,一处登录处处登录.在 Chrome 下没问题,IE 却不行.查看 HTTP 的几个来回,发现登录请求是成功的,问题出在第三方网站返回的 cookie (session id) IE 并没有接受,下一次发送请求时根本没有带上 cookie,说明之前的 Set-Cookie 指令没有效果,所以怎么也登录不了.查了一下,有人使用 iframe 内

【js跨域】js实现跨域访问的几种方式

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对http://store.company.com/dir/page.html同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 一.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不同

【JavaScript】JS跨域

单独说一下js跨域问题,因为之前也遇到过: javascript出于安全方面的考虑,不允许跨域调用其他页面的对象. 跨域简单的理解就是因为javascript同源策略的限制,a.com域名下的js无法操作b.com 或者是c.a.com域名下的对象. 解决方案: 1.用过jsonp,原理是通过script标签引入一个js文件,这个js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入. 2.通过修改document.domain来跨子域,只适用于不同子域

【转】JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对http://store.company.com/dir/page.html 同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 1.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不

5种处理js跨域问题方法汇总

1.JSONP跨域GET请求 ajax请求,dataType为jsonp.这种形式需要请求在服务端调整为返回callback([json-object])的形式.如果服务端返回的是普通json对象.那么调试的时候,在chrome浏览器的控制台会报"Uncaught SyntaxError: Unexpected token"错误:在firefox浏览器的控制台会报"SyntaxError: missing ; before statement"错误. JSON是一种