php获取其他域名cookie,php相互读取跨域读取不同域名的cookie

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

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

类如

www.eduyo.com

www.shumaquan.com

使用同一个writecookie.php 来写cookie

用的jquery的框架来做. jquery的$.getJson自带着可以跨域ajax的jsonp方式,为啥叫jsonp..你问老外吧.

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

$.getJSON("http://eduyo.com?format=json&jsoncallback=?", function(data){

$.each(data.items, function(i,item){

    $("").attr("src", item.media.m).appendTo("#images");

if ( i == 3 ) return false;

});

});

这是手册自带的跨域访问flickr的例子,注意url最后的callback=? 这个就是自动生成一个回调函数的参数.

在服务端脚本里,php为例,应该返回callback的值以实现回调.

$callback = $_GET["callback"];

echo $callback."(".json_encode(array).")";

?>

因为是异步,所以需要返回$callback否则.在firebug里会看到错误提示.

这样就可以实现ajax的跨域. 但是还有写cookie的问题.因为ie的安全验证问题,导致跨域是不能够在另一个域名下写cookie

而firefox就没有这个问题了.查了查原来是下面的方式

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");

?>

以上代码注意是要p3p是要在写入cookie的页上的

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

(责任编辑:ken)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值