老生常谈cookie跨域
来源:互联网 发布:for循环怎么写算法 编辑:程序博客网 时间:2024/05/16 23:35
很早之前就做过跨域设置cookie的项目了,但是以前没有做好积累,今晚花了点时间重新复习一下。
OK,有两个域名,www.a.com和www.b.com,现在要通过a网站来设置b网站下的cookie。
a网站下setcookie.php的代码:
<html><head> <meta charset="utf-8" /> <title>Cookie Cross Domain</title> <!-- --> <script type="text/javascript" src="http://www.b.com/cookie/setcookie.php?name=world"></script></head><body> <h1>test</h1> <!-- <iframe src="http://www.b.com/cookie/setcookie.php?name=hello"></iframe> --></body></html>
用JavaScript来调用或者用iframe调用都是没有问题的。
下面是b网站的setcookie.php的代码:
<?phpheader('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');$name = isset($_GET['name']) ? $_GET['name'] : "caiknife";setcookie("name", $name, time()+3600, '/', '.b.com');
第一行的header函数是因为IE浏览器下有严格的P3P安全验证,所以需要发送这段header信息,FireFox下可以不用。
接下来,是b网站的getcookie.php的代码:
<?phpif (isset($_GET['callback'])) { $callback = $_GET['callback']; echo $callback."(".json_encode($_COOKIE).")";} else { echo json_encode($_COOKIE);}
先别管if语句里前面的代码是什么意思,我们直接访问http://www.b.com/cookie/getcookie.php,就能看到结果:{"name":"world"},OK,cookie跨域设置成功!
接下来,是cookie跨域读取,看看a网站的setcookie.php代码:
<html><head> <meta charset="utf-8" /> <title></title> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $.getJSON("http://www.b.com/cookie/getcookie.php?callback=?", function(data){ $("p").html(data.name); // alert(data.name); }); }); </script></head><body> <p></p></body></html>
这里callback=?,在jQuery的官方文档里是这么解释的:“在 jQuery 1.2 中,您可以通过使用JSONP形式的回调函数来加载其他网域的JSON数据,如 "myurl?callback=?"。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。 注意:此行以后的代码将在这个回调函数执行前执行。”。
现在访问a网站的http://www.a.com/cookie/getcookie.php页面,看到p标签里显示了“world”,跨域cookie读取成功!
以上代码在FireFox 20.0,IE9下测试通过。
- 老生常谈cookie跨域
- 老生常谈session,cookie的区别,安全性
- 老生常谈session,cookie的区别,安全性
- 116 老生常谈session,cookie的区别,安全性
- 老生常谈session,cookie的区别,安全性
- 老生常谈session、cookie的区别、安全性
- 老生常谈const
- 老生常谈const
- 老生常谈:素质教育
- 老生常谈-乱码
- COOKIE跨域
- Cookie跨域
- Cookie跨域
- 跨域cookie
- cookie跨域
- Cookie跨域
- Cookie跨域
- cookie跨域
- JQuery实现图片轮换
- 嵌入式启动方式-从Nand启动cpu .中(学习整理笔记)
- IOS icon的尺寸
- 选择法排序
- asp.net在前台将指定字符串按指定长度进行截取并用其他字符串替换方法
- 老生常谈cookie跨域
- OpenCV笔记3:视频文件的读取与保存
- Socket异步编程之基于消息
- 探索软件设计模式
- 模拟com组件error.
- openfire 插件开发一
- 转中国互联网的第三类地下世界:黑客、色情、黑公关
- 迷宫问题C语言实现
- C# 温故知新 基础篇(11) 泛型<思维导图>