出现跨域问题的原因及其解决方法

出现跨域问题的原因:

同源策略

同源策略

三同

  • 协议相同
  • 域名相同
  • 端口相同

同源策略目的

  • 保证用户信息安全,防止恶意网站窃取数据。同源策略是必须的,否则cookie可以共享。

同源策略的限制范围

  • cookie、localstorage、indexdb无法读取。
  • DOM无法获取。
  • ajax请求不能发送。

规避策略

  1. cookie:设置document.domain共享cookie。
  2. DOM获取:(父子页面通信)H5引入了一个API,这个API为windows对象新增了一个window.postMessage方法,允许跨窗口通信,无论这两个窗口是否同源。

window.opener.postMessage(content,origin)

content是消息的具体内容,origin是协议 + 域名 + 端口

  1. AJAX:
  • JSONP:JSONP是服务器无客户端跨源通信的常用方法。基本思想是网页通过添加一个

你可能感兴趣的:(出现跨域问题的原因及其解决方法)