首页 > 代码库 > 跨域问题的产生及解决方法
跨域问题的产生及解决方法
域(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="http://www.mamicode.com/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=http://www.mamicode.com/‘www.baidu.com/s.php?id=12321‘; //传入参数id=12321>跨域问题的产生及解决方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。