JS跨域

什么是跨域

网络间的通信有同源策略,从一个源加载的脚本或文件如何和另外一个源的脚本进行交互。这是用于隔离潜在恶意文件的的关键安全机制
同源:是指主机名,协议,端口组成组合必须相同,不同源的话会Cookie,localStorage,IndexDB无法读取,DOM无法获得,AJAX不能发送请求

前后端通信

1:ajax 2:webSocket(不受同源策略限制) 3:CORS(新的通信标准)
跨域的几种方式:
1: JSONP 2:Hash 3:postMessage(HTML5) 4:webSocket 5;CORS

  1. JSONP 利用script的标签的异步加载特性特性实现,给服务器传一个回调函数,服务器执行完后返回一个传递过去的回调函数的js代码
  2. Hash 是页面嵌套 在目标页面进行onhashchange 监控
  3. postMessage(),窗口A(http:A.com)向跨域的窗口B(http:B.com)发送信息 例如 3.3
  4. websocket var ws = new WebSocket("wss://self.org") 监听 onOpen onMessage onClose事件
  5. HTML5的fechtch API
  6. 后台配置
  7. form 直接进行表单提交
  8. cors http://www.ruanyifeng.com/blog/2016/04/cors.html
    例子3.3 窗口A(http:A.com)向跨域的窗口B(http:B.com)发送信息
    BWindow.postMessage('data','http://B.com')
    Awindow.addEventListener('message',funciton(event){
    console.log(event.origin)
    console.log(event.source)
    console.log(event.data)
    })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Section1、为什么要跨域? 自古以来(1995年起),为了用户的信息安全,浏览器就引入了同源策略。那么同源策...
    qhaobaba阅读 448评论 0 0
  • Section1、为什么要跨域? 自古以来(1995年起),为了用户的信息安全,浏览器就引入了同源策略。那么同源策...
    不去解释阅读 629评论 0 0
  • <转>详解跨域(最全的解决方案) 什么是跨域跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,...
    涅槃快乐是金阅读 5,040评论 0 3
  • 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获...
    饥人谷_林嘉俊阅读 493评论 0 1
  • 一周之初事多磨,忽觉时光日如年。 不是时光慢如沙,只因心中有盼头。
    逐梦人生阅读 309评论 3 4

友情链接更多精彩内容