实现跨域的方式总结

一:jsonp请求

利用<script>标签的跨域特性,动态的生成<script>可以不受限制地从其他域中加载资源,类似的标签还有<img>.使用比较麻烦,需要和后端沟通,准备回调函数。可以使用JQ的$.ajax()方法支持jsonp方式。

二:document.domain

这种方式用在主域名相同子域名不同的跨域访问中

三:window.name

windowname属性有个特征:在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。

四:window.postMessage

window.postMessages是html5中实现跨域访问的一种新方式,配合onmessage事件来实现向其它的window对象发送消息,无论这个window对象是属于同源或不同源。

五:CORS (主流)

CORS背后的基本思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是应该失败。只需要后端处理

六:Web Sockets

web sockets原理:在JS创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接。取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议。

posted @ 2019-05-08 16:42  YooHoeh  阅读(114)  评论(0编辑  收藏  举报
被你发现了?