前言
首先要指出的是,这里的跨域访问,应该细分为跨域页面访问和跨域信息采集。现在具体来分析说明一下
跨域页面访问
原因
这种方式主要出现在多个系统集成的情况下,主系统以iframe或frameset的方式将其他子系统的页面嵌进来。由于安全原因浏览器会阻止iframe或frameset的cookie,由于SESSION需要以内存cookie的方式存储id到客户端,因此SESSION将一起失效。
PS:如果在嵌入页面内部操作的话,不会有跨域问题,该问题仅在多处嵌入的情况下发生.
解决办法
在子系统的登录代码中加入P3P的认证,即允许第三方读取cookie,这样cookie值才能被浏览器正确的读取并保存。代码如下:
response.setHeader("P3P","CP=CAO PSA OUR");
跨域信息采集
原因
这种方式主要出现在Web2.0利用AJAX采集跨域系统数据的时候,如采集气象网站的天气预报信息。出现的主要原因是使用AJAX方式跨域调用,同样出于安全性考虑XMLHttpRequest是禁止跨域访问的,否则你以为采到的是一条文本信息,而实际是一条可执行JS木马的话,你的网站可想而知。
解决办法
- 利用script脚本访问跨域url。该方法需要跨域系统代码可控,输出格式为script脚本。客户端可直接对脚本进行操作。
- 服务器代理模式。通过将请求发送至服务器,由服务器代理访问跨域系统,再将输出的内容返给客户端。在Java中可使用apache的HttpClient。
分享到:
相关推荐
iframe 跨域访问session问题解决方法
不同软件系统下 js 实现跨域访问
跨域访问解决方案,关于跨域访问cookie的资料
tomcat解决跨域访问问题,具体配置如下: 1、修改tomcat下的Conf/web.xml文件,在该文件内容中新增以下配置,注意,若该web.xml中存在其它filter,则需要将该filter放在所有filter前面; <filter-name>...
ASP.NET后台代码实现XmlHttp跨域访问
js_跨域访问[参照].pdf
js解决跨域访问问题,在用js访问web后台方法的时候,有时候会遇到跨域访问的问题。文档中介绍了跨域访问产生的原因以及相应的解决办法及代码示例。
本demo为通过jquery 来进行json的跨域访问的小例子。简单易懂!
Ajax跨域访问的示例(ASP.NET Web)
CORS跨域访问框架jar包,具体配置方法非常简单,网上很多教程,
使用JSONP完成HTTP和HTTPS之间的跨域访问
跨域访问数据,获取JSON数据,XML数据
JS跨域访问解决
怎样实现Ajax 跨域访问的五种方法, 怎样实现Ajax 跨域访问的五种方法
Ajax通过代理来解决跨域访问获取数据,里面描述了两种跨域访问的解决方法
高度自适应 跨域访问实例下载 高度自适应 跨域访问实例下载
Linux中的geoserver安装,直接把geoserver.war放到tomcat/webapps下即可; geoserver默认是不允许跨域访问的,如果要允许跨域访问,请按以下步骤操作: (已在geoserver 2.12.5下亲测可用)
JS跨域访问解决方案总结[参照].pdf
JS跨域访问解决方案总结.。总结了记住JS跨域访问解决方案。
解决SilverLight跨域访问问题