2个不同域名cookie的书写方式

要做通行证,这东西是最麻烦的,又要效率,又要方便还要考虑安全.如果遇到多域名,更是可怕.

现在就遇到了.经过折腾,总算解决了ajax 的跨域和跨域cookie问题,记录如下,方便以后使用

类如
www.222.com
www.333.com
使用同一个writecookie.php 来写cookie
用的jquery的框架来做. jquery的$.getJson自带着可以跨域ajax的jsonp方式,为啥叫jsonp..你问老外吧.

其原理就是传递参数时,增加一个callback句柄,导致产生一个类似script src属性的写法,然后调用回调函数,实现了ajax的跨域访问.其具体方式网上也有一些例子.

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function(data){
  $.each(data.items, function(i,item){
    $("<img/>").attr("src", item.media.m).appendTo("#images");
    if ( i == 3 ) return false;
  });
});
 
这是手册自带的跨域访问flickr的例子,注意url最后的callback=? 这个就是自动生成一个回调函数的参数.
在服务端脚本里,php为例,应该返回callback的值以实现回调.
 
<?php
 $callback = $_GET["callback"];
 echo $callback."(".json_encode(array).")";
?>
  
因为是异步,所以需要返回$callback否则.在firebug里会看到错误提示.
这样就可以实现ajax的跨域. 但是还有写cookie的问题.因为ie的安全验证问题,导致跨域是不能够在另一个域名下写cookie
而firefox就没有这个问题了.查了查原来是下面的方式

<?php  
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');  

setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");  
?> 

 


 

 

 

 

这个header p3p是一个头的安全验证的内容.具体原因可以查老外的文章.我直接就使用了.header出来,就可以跨域写cookie了...

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值