乐趣区

关于javascript:常见跨域解决办法二CORSpostMessage

CORS

CORS 须要浏览器和后端同时反对。IE8 和 9 须要通过 XDomainRequest 实现。
浏览器会主动进行 CORS 通信,实现 CORS 通信的要害是后端,只有后端实现了 CORS,就实现了跨域。

实现形式

  • 服务端设置 Access-Control-Allow-Origin, 该属性示意哪些域名能够拜访资源,如果设置通配符 *, 则示意所有网站都能够拜访资源。

postMessage

window.postMessage() 办法能够平安地实现跨源通信,可实现跨文本档、多窗口、跨域消息传递。

应用场景

  • 页面和其余关上的新窗口的数据传递
  • 多窗口之间消息传递
  • 页面与嵌套的 iframe 消息传递

参数介绍(官网文档:https://developer.mozilla.org…

otherWindow.postMessage(message, targetOrigin, [transfer]);

  • message: 将要发送到其余 window 的数据
  • targetOrigin: 通过窗口的 origin 属性来指定哪些窗口能接管到音讯,可设置为 url 或通配符 *。发送音讯时,如果指标窗口的协定、主机地址、端口号三者的任意一项不匹配 targetOrigin 提供的值,那么音讯就不会被发送,只有三者齐全匹配,音讯才会被发送
  • transfer: 该参数可选,是一串和 message 同时传递的 Transferable 对象. 这些对象的所有权将被转移给音讯的接管方,而发送一方将不再保有所有权。
退出移动版