跨域是指什么,因为什么引起的?有哪些解决方案?web前端知识
域(Domain)是Windows网络中独立运行的单位,域之间相互访问则桐冲亮需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。 有一种简明的说法来解释广域跨域:跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。由于安全原因,跨域访问是被各大浏览器所默认禁止的。
解决方案:
1、js向服务器发送请求,然后让服务器去另一个域上获取数据后返回。(用于你无法控制另一个域) 比如php中利用cUrl。
2、放置跨域文件.
3、用JSONP。虽然不能跨域进行通信,但是可以引入跨域的js文件。
先定义一个函数
var returnData;
function getData(obj) {
returnData = JSON.parse(obj);
}
当我们要向www.baidu.com/s.php请求数据的时候,我们可以引入某个包含返回信息的js文件。
比如局宽: <script type="text/javascript" src="www.baidu.com/s.php?id=12321" />
js的内容是getData({json:'格式'});返回时输出 格式是 text/javascript (比如php用header('Content-type:text/javascript');来输出)
那么文件加载好后解析js时就会执行这个函数,返回得到的数据就被赋值给了returnData变量
以这样的方式插入到页面中:
var script = document.createElement('script');
script.src='判备www.baidu.com/s.php?id=12321'; //传入参数id=12321
body.appendChild(script);
广义跨域就是指跨神困域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。由于安全原因,跨域访问是被各大浏览器所默认禁止的。
当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。这就形成了“跨域”。
【延展】
跨域访问被各大浏览器所默认禁止怎么办?
解决方案:
1、js向服务器发送请求,然后让服务器去另一个域李迅上获取数据后返回。(用于你无法控制哪瞎此另一个域) 比如php中利用cUrl。
2、放置跨域文件.
3、用JSONP。虽然不能跨域进行通信,但是可以引入跨域的js文件。
2015-06-02 · 知道合伙人软件行家
js可以
meta可以
2017-04-11 · 百度知道合伙人官方认证企业
HTML5 里有个window.postMessage 方法,支持跨域访问,详情可以参考
http://www.webhek.com/window-postmessage-api
如果返闷你的程序在服务器上,也可以进行相应的漏弊弯操作来完成跨域访问
纯手打 有问题欢迎咨询