cookie不同系统间共享

本文介绍了三种实现Cookie跨域共享的方法:1.设置Cookie的域名和路径以实现不同系统间的共享;2.将Cookie存储在Redis中进行跨域管理;3.利用JSONP通过Ajax进行跨域请求,尤其适用于开发环境。
摘要由CSDN通过智能技术生成

1.设置cookie的使用范围(域名+路径)

 cookie.setDomain(".baidu.com");//表示在baidu下的二级域名之间都可以共享

cookie.setPath("/"); //设置成根目录

如果是测试用的localhost则不用设置domain,只要设置path就可以实现系统间共享


2.不知道有人用过把cookie存入redis可以实现cookie跨域共享。


3.应该还用一个方法可以实现,使用jsonp来通过ajax实现,而且这种方法还比较流行

JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式。

 在开发中,开发人员应该都知道js在操作cookie时是不允许跨域处理的,那么怎么办呢?利用Jquery之AJAX 跨域请求 - 其中有一个方法 JSONP 可以实现跨域请求。

    JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式。

      什么是jsonp格式呢? API原文是:
     
如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。意思就是远程服务端需要对返回的数据做下处理,根据客户端提交的callback的参数,返回一个callback(json)的数据,而客户端将会用script的方式处理返回数据,来对json数据做处理。JQuery.getJSON也同样支持jsonp的数据方式调用。

     先跟着飘易看看一个测试的案例:

     前端HTML代码是( 先引用jquery库 ):
<script type="text/javascript" src="jquery.min.js"></script>
     <script type="text/javascript">
    jQuery(document).ready(function(){
        $.ajax({
            type : "get",
            async:false,
            url : "http://www.piaoyi.org/json.php",
            dataType : "jsonp",
            jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
            jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
            success : function(json){
                document.writeln(json.name+"<br>");
document.writeln(json.age+"<br>");
            },
            error:function(){
                alert('fail');
            }
        });
    });
    </script>


    后台服务器端代码,拿PHP举例:
//服务端返回JSON数据
$arr=array('name'=>'Peter Piaoyi','age'=>25,'city'=>'wuxi');
$result=json_encode($arr);
//动态执行回调函数
$callback=$_GET['callback'];
if($callback!="") echo $callback."($result)";
else echo "$result";

    执行上述前端页面后,通过抓包,我们可以看到发送的地址:
Jquery之AJAX  COOKIES跨域请求 - JSONP实现方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值