document.domain

540 阅读1分钟

由于JavaScript同源策略的限制,脚本只能读取和所属文档来源相同的窗口和文档的属性。

对于已经有成熟产品体系的公司来说,不同的页面可能放在不同的服务器上,这些服务器域名不同,但是拥有相同的上级域名,比如id.qq.com、www.qq.com、user.qzone.qq.com 它们都有公共的上级域名qq.com。这些服务器上的页面之间的跨域访问可以通过document.domain来进行。

前提条件

这两个域名必须属于同一个基础域名!而且所用的协议,端口都要一致,否则无法利用document.domain进行跨域

具体代码实现

//a.test.com
<script>
    document.domain = "test.com";
    function load() {
      console.log(frame.contentWindow.a);
    }
  </script>
//b.test.com
<script>
    document.domain = "test.com";
    var a = 100;
</script>