zoukankan      html  css  js  c++  java
  • document.domain

    通过document.domain实现跨域访问

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

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

    默认情况下,document.domain存放的是载入文档的服务器的主机名,可以手动设置这个属性,不过是有限制的,只能设置成当前域名或者上级的域名,并且必须要包含一个.号,也就是说不能直接设置成顶级域名。例如:id.qq.com,可以设置成qq.com,但是不能设置成com。

    具有相同document.domain的页面,就相当于是处在同域名的服务器上,如果协议和端口号也是一致,那它们之间就可以跨域访问数据。

    分享几个例子:

    1. 访问同源页面:

    打开https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Cookie,在f12控制台里window.open页面:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers,访问返回的window对象的document属性,发现能够访问成功,如下图:

    2. 访问协议、端口号一致,域名不一致,但具有相同上级域名的页面:

    打开id.qq.com,f12打开控制台,window.open页面: www.qq.com,同样访问返回的window对象的document属性,发现访问失败,提示被阻止访问跨域的窗体:

    这个时候分别打印id.qq.com的document.domain和www.qq.com的document.domain,发现前者是id.qq.com,而后者是qq.com,这时我们手动设置一下id.qq.com页面的document.domain,设置为qq.com,再次访问www.qq.com的window对象的document,发现访问成功:


    ————————————————
    版权声明:本文为CSDN博主「nju.拈花」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/nlznlz/article/details/79506655

    ————————————————
    版权声明:本文为CSDN博主「nju.拈花」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/nlznlz/article/details/79506655

  • 相关阅读:
    vue router 跳转动画
    less 循环
    在iconfont上批量下载图标
    function(h)
    三元表达式
    CSS3 object-fit 属性
    MaC 修改MySQL密码
    CSS3 animation 属性
    css控制文字超过2行不显示
    ionic动画
  • 原文地址:https://www.cnblogs.com/xyyou/p/13227725.html
Copyright © 2011-2022 走看看