要做通行证,这东西是最麻烦的,又要效率,又要方便还要考虑安全.如果遇到多域名,更是可怕.
现在就遇到了.经过折腾,总算解决了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了...
分享到:
相关推荐
超实用的cookie设置案例,说明,编辑cookie,删除cookie方法
因为网站系统的日益庞大,不同域名业务,甚至不同合作方网站的cookie可能或多或少需要进行共享使用,遇到这个情况的时候,大家一般想到的是使用登录中心分发cookie状态再进行同步进行解决,成本较高而且实施起来比较...
总的来说,基于Cookie的二级域名下跨域共享SSO是一种常见的实现方式,它通过合理利用Cookie的特性,实现了用户在多应用间的无缝切换,同时确保了安全性。实际应用中,可能还需要结合OAuth、JWT等现代身份验证机制,...
c#webbrowser实现多个窗口独立不同的cookie
在互联网应用中,用户在访问一个网站的不同子域名之间保持登录状态是非常常见的需求。例如,如果用户在`www.example.com`上登录后,他们也应该在`blog.example.com`或`shop.example.com`等子域名上自动登录。实现...
此外,不同浏览器对跨域Cookie的支持和处理方式可能略有差异,某些浏览器可能会有同源策略的限制,因此在实际部署时,应进行充分的测试,确保在各种浏览器环境下都能正常工作。 总之,要实现一级域名与二级域名间...
在大多数情况下,一个企业会使用同一个顶级域名(如`.com`)并通过不同的二级域名(如`app1.example.com`和`app2.example.com`)来区分不同的业务系统。为了实现SSO功能,企业通常会部署一个专门的登录系统(如`sso....
然而,出于安全考虑,默认情况下,一个网站的Cookie只能被该网站读取,即同源策略限制了不同域名之间的数据共享。这种限制对于单一域名下的多个子域名通常不是问题,但对于需要跨子域名甚至跨主域名共享Cookie的情况...
默认情况下,ASP.NET的Session是基于Cookie的,每个Cookie都有一个特定的域限制,这意味着Session信息不能在不同的域名之间直接传递。为了解决这个问题,我们可以采用以下几种策略: 1. **Cookieless Session**:...
【跨域名 Cookie】知识点详解 Cookie 是Web开发中不可或缺的一部分,它主要用于存储用户信息,如登录状态、个性化设置等,从而提升用户体验。然而,出于安全考虑,浏览器默认禁止Cookie跨域传输,即一个域下的页面...
有时候两个域名可能在不同的服务器上,但是我们依然希望二级域名能够顺利访问主域名的cookie,主域名可以顺利访问二级域名的cookie,比如sc.jb51.net 希望能访问 www.jb51.net 和 blog.jb51.net 的 cookie 下面介绍3种...
在同一个域名下,可以为不同的路径设置不同的Cookie,这样就形成了子Cookie的概念。例如,根路径"/"的Cookie可以被所有子路径访问,而"/app"路径下的Cookie只能在该路径及其子路径下访问。这允许我们在不同路径上...
在Android平台上,清除特定域名的cookie是一个相对复杂的过程,因为Android的CookieManager API并不直接提供清除单个域名cookie的功能。通常,CookieManager提供了`removeAllCookie()`方法来清除所有cookie,但不能...
然而,在涉及到多个域名的情况下,传统的Session管理方式会遇到挑战,尤其是在同一个服务器上运行着不同域名的应用时。这时就需要实现跨域名的Session共享。 #### 实现原理 实现跨域名的Session共享主要依赖于以下...
- **Cookie 数量限制**:浏览器对单个域名下的 Cookie 数量有限制(通常为 50 个),注意不要超过这个限制。 #### 七、结语 通过本文的学习,您应该已经掌握了如何使用 jQuery 和其插件来设置、获取和删除 Cookie ...
如果IP不同,则不会发生这个问题。IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以你不要...
当我们谈论“cookie设置多个应用共享”时,这个问题的核心是如何在不同的Web应用程序之间共享用户的状态信息。通常,Cookie是与特定的域名关联的,因此默认情况下,它们不能跨不同的顶级域名共享。然而,对于在同一...