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

  • 相关阅读:
    看雪-课程-加密与解密基础
    Windows API-Wininet&WinHTTP
    OS-Windows-bat-不等待当前命令返回继续执行后续指令
    Code-OPC DA- OPC Client Code Demo
    OS-Windows-Close Windows Error Reporting
    C-长度修饰符
    Code-Linux-time_t
    Windows-bat-Path
    Code-C++-CTime&ColeDateTime
    c++命名规范、代码规范和参数设置
  • 原文地址:https://www.cnblogs.com/xyyou/p/13227725.html
Copyright © 2011-2022 走看看