document.domain跨域

在介绍document.domain跨域前,先铺垫点前言知识

主域和子域的区分?

主域名:由两个或两个以上的字母构成,中间用点号隔开,这个域名只有一个点号
比如:baidu.com
子域名:是在主域之下的域名,域名内容后有2个或更多个点号
比如:www.baidu.com / zhidao.baidu.com

document.domain?

目前我的理解:document.domain代表的是提供document这个文档的域名,DOM标准规定该值是只读的。
但是许多浏览器包括火狐都允许它设置为当前域名的父域名,且主域必须要相同。(当然可以设置为自身)
例如:a.b.example.com中某个文档的document.domain 可以设成a.b.example.com、b.example.com 、example.com中的任意一个,但是不可以设成 c.a.b.example.com,因为这是当前域的子域,也不可以设成baidu.com,因为主域已经不相同了。

通过修改document.domain来跨子域

我们在http://www.example.com/a.html页面通过iframe嵌入http://example.com/b.html后,虽然我们可以通过iframe.contentWindow来获得b.html的window,但是由于同源策略的存在,我们无法使用获取到的window的属性和方法,因为同源策略限制的是ajax的请求操作和js的交互操作
若此时我们 将两个页面的document.domain都设置为相同的域名,比如都设置为example.com可以获得b.html页面window上的属性和方法,并且进行一些其他跨域操作了
但是由于document.domain的修改是有限制的,只能设置为自身或者更高一级的域名,且主域要相同,所以进而这就限制了该方法使用的范围,即仅仅父域和子域,子域和子域之间才能使用该方法进行跨域操作

操作如下

http://www.example.com/a.html页面

转载于:https://www.cnblogs.com/Walker-lyl/p/7454139.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值