用于解决一级域名和二级域名等之间的跨域问题。只需要两个页面的 document.domain 都设置为 顶级域名即可

思路:

  1. <iframe src="http://b.destiny.cn:3000/b.html"
  2. frameborder="0"
  3. onload="load()"
  4. id="iframe">
  5. </iframe>
  6. <script>
  7. document.domain = 'destiny.cn';
  8. function load() {
  9. console.log(iframe.contentWindow.a);
  10. }
  11. </script>
  1. <script>
  2. document.domain = 'destiny.cn';
  3. var a = 100;
  4. </script>

记住定义 a 要使用 var,不能使用 let,因为 let 不会挂载到 window 上。

模拟二级域名方法

寻找到本机的 hosts 文件。

路径:C盘 -> Windows -> System32 -> drivers -> etc -> hosts

  1. 127.0.0.1 www.destiny.cn
  2. 127.0.0.1 destiny.cn
  3. 127.0.0.1 a.destiny.cn
  4. 127.0.0.1 b.destiny.cn

localhost 是自动映射到 127.0.0.1 本机的。要设置其他的,可以通过像上面一样设置。

此时,访问 上面设置的所有域名,都相当于访问 localhost,然后只需要开启服务即可。