IT技术互动交流平台

关于常用的几种跨域方式详细大揭秘

作者:whl  发布日期:2018-11-11 08:33:00

  小编在最近的工作中在跨域方面发现了一些问题,因而趁机查询了详细的相关资料并进行了记录。下面将在浏览器同源策略的基础上的几种跨域方式给大家进行详细的介绍,相信对于大家在日常工作上还是非常有参考价值的。

  Flash跨域

  这是一种比较老的跨域方式,现在基本不使用了,要是有兴趣可以自己去看看,在这里就不做讨论。

  服务器中转代理

  服务器中转代理也是我们常用的一种方式。由于同源策略只是浏览器的限制,服务器不会受到同源策略的限制,所以我们可以发送请求的时候,可以设置一个代理服务器,这个代理服务器和我们当前的url同源,首先请求到该同源的服务器,然后由同源的服务器重定向到我们要访问的url,由于服务器和服务器之前不受同源策略的限制,所以即使不是同源的也可以不受限制的访问。

服务器中转代理

  JsonP跨域

  JsonP跨域,是我们经常使用到的一种跨域方式。想必大家都有这样的经历,在script中使用,src属性,引入外部资源,比如jQuery,稍微注意以下就能看到请求的url其实和我们本地的url不同源的,但是为什么我们却可以请求到资源呢? 这是因为src属性具有跨域的能力。凡是拥有src这个属性的标签都拥有跨域的能力,而且都是GET请求比如比如<script>、<img>、<iframe>。

  使用方法

  因为我们无法监控通过<script>的src属性是否把数据获取完成,所以我们需要做一个处理。一般是我们向后端传递参数的时候,传一个处理跨域获取数据的函数,服务端会根据参数cb的值返回 对应的内容。这样后台返给我们的数据像这样: doJSON(data), 这样在我们的页面中就会自动执行我们定义好的方法,而且方法的参数就是我们想要的数据,我们就可以在该方法中处理相关业务逻辑。

使用方法

  我们可以在页面中设置documentl.domain,但是这只是针对基础域名相同的情况。例如 在bj.58.com与tj.58.com 中设置document.domain = '58.com',那么只要基础域名是58.com,就可以访问这两个页面。

  上面主要是服务器中转代理、JsonP跨域这两种跨域方式进行了详细介绍,Flash跨域还是太老旧,参考价值比较低,大家还是多学习另外两种方法就可以了。相信大家只需要按照介绍的使用方法进行操作,那么是不会存在问题的。


 


 

延伸阅读:

Tag标签: 跨域方式详解  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规