跨域解决方案(二)对比篇

上一篇跨域解决方案(一)说明篇中对跨域有了详细说明,

这一篇将每一种方案罗列出来总结对比。

跨域解决方案一览表
序号解决方案简述优点缺点
1document.domain将子域和父域的domain都设置成父域地址设置简单仅限于子域名与父域名不同的情况
2window.location.hashA与B通信,通过代理页C(与A同域)来设置用于与iframe标签嵌入的页面进行通信1、设置起来比较麻烦,需要借助代理页。
2、数据容量和类型有限制
3window.nameA与B通信,也需要通过代理页C(与A同域)完成1、适用于与iframe标签嵌入的页面进行通信
2、与location.hash对比容量较大,可以容纳2MB
设置起来比较麻烦,需要借助代理页。
4WebsocketWebsocket是一种通信协议,不受同源策略限制。 只要设置了Origin字段,并且域名在白名单范围内,服务器就可以通信只要设置了Origin字段,并且域名在白名单范围内,服务器就可以通信只适用于ws://和wss://作为协议前缀的域名
5postMessage发送方可通过postMessage(msg,origin)发送消息,写明发送内容和发送方域名地址(协议+域名+端口)即可。
接收方可通过onmessage进行监听拿到消息。
设置简单,可用于向服务器请求数据,也可以进行网页之间的传值。1、发送方和接收方均要注意判断源地址,以免信息泄露。
2、在实际开发中要注意配置不同的环境地址。(开发、测试和生产)
6jsonp 通过插入script标签,发送请求,因为非xhr请求,所以不受浏览器限制,即可实现跨越。设置简单,可兼容老的浏览器1、需要前后端配合,协同回调函数名。
2、因为不是xhr请求,所以不具备该请求的特性。
7CORS CORS即跨域资源共享,是w3c的标准,使用自定义的http请求头,服务端设置Access-Control-Allow-Origin为请求方域名或者* 设置简单,最常用的跨域办法。不兼容老的浏览器(IE6、IE7、Opera min)
8Ngnix 通过ngnix配置,将数据发送方的地址转发到数据请求方,就避免了跨域问题。设置简单 依赖于ngnix配置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值