一、什么是跨域?
只要协议、域名、端口有任何一个不同,就是跨域。
二、为什么不能跨域?
浏览器有一个同源策略,用来保护用户的安全。
如果没有这个策略的话,a网站就可以操作b网站的页面,这样将会导致b网站的页面发生混乱,甚至信息被获取,包括服务器端发来的session。
三、跨域的解决方案
1、JSONP
解决方法
0)浏览器是可以引入不同域下的JS文件,利用这个特性,来实现跨域。
1)直接在a.com页面,添加一个script标签,src属性为b网站的页面url,并且传入一个callback参数。
<script> function dosomething(jsonData){
2)b网站的handlerData.php,实际做的操作就是:生成一段可执行的JS代码,调用你传入的dosomething函数。
详细介绍:http://www.cnblogs.com/2050/p/3191744.html
应用场景 常用的解决方案
请求方式 get :它本质上是下载一个资源文件。
2、document.domain
应用场景
必须满足两个条件
1)页面中嵌入firame框架。
2)当前页面和iframe中的页面,主域、协议、端口必须完全一致。
解决方法
比如页面地址是http://a.baidu.com/,嵌入的iframe是 http://b.baidu.com/
分别设置页面和iframe的document.domain为: baidu.com,就可以解决问题。
3、使用H5中的window.postMessage
解决方法
window.postMessage(message,targetOrigin) 方法是html5新引进的特性,可以使用它来向其它
的window对象发送消息,无论这个window对象是属于同源或不同源,目前IE8+、FireFox、Chrome、
Opera等浏览器都已经支持window.postMessage方法。
应用场景
1)页面和其打开的新窗口的数据传递
2).多窗口之间消息传递
3).页面与嵌套的iframe消息传递
详细介绍:http://www.cnblogs.com/dolphinX/p/3464056.html
4、CORS方案
解决方法
CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问。CORS 允许一个域上的网络应用
向另一个域提交跨域 AJAX 请求。实现此功能非常简单,只需由服务器发送一个响应标头即可。
header("Access-Control-Allow-Origin", "*");
分享到:
相关推荐
ASP.NET Core微服务(三)——【跨域配置】——对应练习demo(跨域)
通过这个插件,可以实现不同域名的双向通信问题,内含demo 配套文章:http://blog.csdn.net/mycwq/article/details/16344171
一、通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。 二、通过修改document.domain来跨...
实现javascript跨域,可以在不同域名双向通信,内含demo,支持IE6+、火狐,谷歌等浏览器 配套文章:http://blog.csdn.net/mycwq/article/details/16344171
在浏览器查看一个pdf文件时常常不知道怎么显示,这个资源可以很好的帮到你,而且还附有跨域的解决办法。
解决arcgis server跨域问题: 1、停掉ArcGIS Server的服务。 2、 打开<ArcGIS Server> \framework\runtime\tomcat\conf\web.xml,注册跨域bean 3、lib下拷贝 cors-filter-2.5.jar java-property-utils-1.9.1.jar包 4...
能够完美解决arcgis js跨域解决问题,该文档详细说明了.NET或者java环境下跨域解决
本篇文章主要介绍了解决ajax不能访问本地文件问题(利用js跨域原理),具有一定的参考价值,有兴趣的可以了解一下。
js跨域问题解决方案.
js解决跨域访问问题,在用js访问web后台方法的时候,有时候会遇到跨域访问的问题。文档中介绍了跨域访问产生的原因以及相应的解决办法及代码示例。
JavaScript 父子页面跨域通信的方法
arcgis api for js 4.x 在tomcat离线部署后,跨域访问问题,彻底解决。
JSP使用ajaxFileUpload.js实现跨域问题.docx
js跨域解决方案
解决js的跨域问题
js -- 跨域问题.doc
解决Cesium访问数据跨域问题,数据使用tomcat部署在服务器上。
前端跨域问题解决
javascript 跨域问题以及解决办法 什么是跨域问题? 跨域这个问题是由于浏览器的同源策略引起的,请求的URL地址,必须与浏览器的URL是相同协议、相同域名、相同端口的,否则是不允许访问的 浏览器URL 要访问的...
NULL 博文链接:https://sun123start.iteye.com/blog/2150778