cookie跨域访问的问题(多个项目间)
今天有一同事问到一个Cookie跨域访问的问题,大概是这样的:“有两个不同域名的系统A(www.a.com/a.jsp)与
B(www.b.com/b.jsp);当系统A成功登录后,系统B也能够同时自动完成登录,有点像一点登录的效果”。
为了快速、简单的实现这一功能,首先想到就是通过JS操作Cookie并让两个不同域的cookie能够相互访问,这样就可达到了上述的效果,具体实现过程大致可分以下两个步骤:
1、在A系统下成功登录后,利用JS动态创建一个隐藏的iframe,通过iframe的src属性将A域下的cookie值作为
get参数重定向到B系统下b.jsp页面上;
var _frm = document.createElement("iframe"); _frm.style.display="none"; _frm.src="http://b.com/b.jsp?test_cookie=xxxxx"; document.body.appendChild(_frm);
2、在B系统的b.jsp页面中来获取A系统中所传过来的cookie值,并将所获取到值写入cookie中,这样就简单的实现了cookie跨域的访问; 不过这其中有个问题需要注意,就是在IE浏览器下这样操作不能成功,需要在b.jsp页面中设置P3P HTTP Header就可以解决了(具体詳細信息可以参考:http://www.w3.org/P3P/),P3P设置代码为:
分享到:
相关推荐
跨域访问问题是Web开发中常见的挑战之一。通过采用合适的解决方案并正确配置Cookie处理方式,可以有效地解决这一问题。CORS是最常用也是最灵活的方案之一,而结合Cookie和Memcached则可以在保证安全性的同时提升系统...
Nginx 是一款轻量级的 Web 服务器、反向代理服务器和电子邮件代理服务器,然而在实现跨域访问时,会遇到一些问题。本文将讨论 Nginx 实现跨域访问遇到的系统环境问题解决方法,并分享踩过的坑。 跨域是什么? -----...
本文将详细讨论如何在JavaScript中实现跨域访问,以及涉及到的`LinkToInfoFrame`、`ShowModelInfo`、`ShowLineData`等方法的修改。 首先,`LinkToInfoFrame(url, x, y)`是一个通用的函数,用于设置IFrame的`src`...
在开发Web应用时,我们经常会遇到“跨域访问”(Cross-Origin Resource Sharing, CORS)的问题。Tomcat作为一款广泛使用的Java Servlet容器,同样会遇到这个问题。跨域是由于浏览器的安全策略,同一源策略(Same-...
### JS解决跨域访问问题详解 #### 一、引言 在现代Web开发中,跨域访问问题是开发者经常面临的一个挑战。特别是在使用JavaScript进行前后端交互时,由于浏览器的同源策略限制,开发者经常会遇到跨域问题。本文将...
在Web开发领域,跨域访问是一个常见的问题。当客户端尝试从一个源加载不同源的数据时,就会触发跨域问题。为了解决这个问题,开发者通常会采用多种技术手段,其中一种是通过ASP.NET后台代码实现XmlHttp跨域访问。...
请用google浏览器打开,页面百分比缩小到百分之三十再访问。 1、 请在服务器上部署附件war 2、 将【两个工程.zip】压缩包中的webChart.war和jdbc2json.war上传至apache-tomcat-8.0.33/webapps下 3、 启动tomcat,~/...
`iframe` 跨域访问`session`正是为了解决这一问题。 首先,让我们了解一下`session`和`cookie`的关系。`session`通常用于存储用户登录状态等临时信息,而`cookie`则作为`session` ID的载体在客户端和服务器之间传递...
在开发Silverlight应用程序时,你可能会遇到一个常见的挑战:跨域访问问题。这通常发生在尝试访问不同于承载Silverlight应用的Web服务器的其他Web资源时。本文将深入探讨Silverlight跨域访问的问题,以及如何有效地...
需要注意的是,单纯在客户端设置`crossDomain: true`并不足以实现跨域访问,还需要后端服务器的支持。 ### 后端配置 后端服务器需要设置适当的响应头来支持CORS。以下是一些常见的响应头: - `Access-Control-...
在IT行业中,尤其是在Web开发领域,跨域访问问题是一个常见的挑战。Cesium是一个强大的JavaScript库,主要用于创建交互式的3D地球、地图和其他地理空间应用程序。当Cesium在Apache Tomcat服务器上部署时,由于浏览器...
在Golang中实现跨域访问,主要是为了克服Web应用程序中由同源策略导致的限制,使得前端能够通过Ajax从不同源获取数据。本篇将详细解释如何在Golang后端设置CORS(跨域资源共享)策略,以便允许前端进行跨域请求。 ...
然而,由于安全限制,Silverlight默认不允许跨域访问,这在尝试访问不同源的服务时会引发问题。本篇文章将深入探讨如何解决Silverlight通过TCP协议访问自托管的WCF(Windows Communication Foundation)服务时遇到的...
本教程将详细讲解如何利用这些技术实现跨域数据交互。 首先,我们需要理解“跨域”这个术语。在浏览器的安全策略中,同源策略规定了JavaScript只能访问与自身URL协议、域名和端口完全相同的资源。这意味着,如果一...
这篇博客“基于Spring和Spring MVC实现可跨域访问的REST服务”深入探讨了如何使用这两个流行的Java框架来创建这样的服务。Spring作为核心框架提供依赖注入和整体架构支持,而Spring MVC作为其Web模块,专门用于构建...
本文档将深入探讨如何在HTML5中实现跨域访问,帮助开发者避免修改大量代码,提高工作效率。 一、什么是跨域? 在Web开发中,"同源策略"是一项重要的安全机制,它限制了一个源(域名、协议和端口)的文档或脚本只能...
为了实现跨域session共享,我们可以使用例如Redis或Memcached这样的分布式缓存来存储session。首先,需要添加相应的依赖到`pom.xml`或`build.gradle`文件中,然后配置Spring Boot的session存储机制: ```java @...
因为cookie在跨域的情况下,浏览器根本不允许互相访问的限制,为了突破这个限制,所以有了以下这个实现方案,使用postmessage和localstorage进行数据跨域共享。 原理比较简单,但是遇到的坑也不少,这里梳理一下,做...
ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法只支持GET方式,不如POST方式安全...因此,通过设置Access-Control-Allow-Origin来实现跨域访问比较简单。
这时就需要解决Ajax跨域访问的问题。本文将详细介绍五种实现Ajax跨域访问的方法。 #### 一、使用JSONP(JSON with Padding) JSONP是一种常用的跨域数据获取方式,其原理是利用`<script>`标签没有跨域限制的特点来...