document.domain用来得到当前网页的域名。
比如打开百度,在地址栏里输入:

javascript:alert(document.domain); //www.baidu.com

弹出窗体:

我们也可以给document.domain属性赋值,不过是有限制的,你只能赋成当前的域名或者基础域名。比如:

javascript:alert(document.domain = "baidu.com"); //baidu.com
javascript:alert(document.domain = "www.baidu.com");//www.baidu.com

上面的赋值都是成功的,因为www.baidu.com是当前的域名,而baidu.com是基础域名。

但是下面的赋值就会出来"参数无效"的错误:

javascript:alert(document.domain = "cctv.net"); //参数无效
javascript:alert(document.domain = "blog.knownsec.com"); //参数无效

因为cctv.net与blog.knownsec.com不是当前的域名也不是当前域名的基础域名,所以会有错误出现。这是为了防止有人恶意修改document.domain来实现跨域偷取数据。

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

Javascript出于对安全性的考虑,而禁止两个或者多个不同域的页面进行互相操作。相同域的页面在相互操作的时候不会有任何问题。

比如在:aaa.com的一个网页(a.html)里面利用iframe引入了一个bbb.com里的一个网页(b.html)。
这时在a.html里面可以看到b.html里的内容,但是却不能利用javascript来操作它。因为这两个页面属于不同的域,在操作之前,js会检测两个页面的域是否相等,如果相等,就允许其操作,如果不相等,就会拒绝操作。
这里不可能把a.html与b.html利用JS改成同一个域的。因为它们的基础域名不相等。(强制用JS将它们改成相等的域的话会报跟上面一样的"参数无效错误。")
所以如果在a.html里引入aaa.com里的另一个网页,是不会有这个问题的,因为域相等。

有另一种情况,两个子域名:
aaa.xxx.com
bbb.xxx.com

aaa里的一个网页(a.html)引入了bbb 里的一个网页(b.html),这时a.html里同样是不能操作b.html里面的内容的。因为document.domain不一样,一个是aaa.xxx.com,另一个是bbb.xxx.com。
这时我们就可以通过Javascript,将两个页面的domain改成一样的,需要在a.html里与b.html里都加入:

document.domain = "xxx.com";

这样这两个页面就可以互相操作了。也就是实现了同一基础域名之间的"跨域"。

document.domain 跨域问题[转]相关推荐

  1. document.domain 跨子域

    跨子域 document.domain 利用document.domain实现跨域: 这两个域名必须属于同一个基础域名,所用的协议,端口要一致,不然,是无法利用document.domain进行跨域的 ...

  2. javascript跨域实践

    上次我转载了一篇 [转]JavaScript最全的10种跨域共享的方法 ,仔细研读,终于对跨域有了一些些了解,做了几个demo加深印象. 1.jsonp 方式跨越: 我首先新建一个服务端页面: jso ...

  3. 【网络安全】浅析跨域原理及如何实现跨域

    前言 我们在解决一个问题的时候应该先去了解这个问题是如何产生的,为什么会有跨域的存在呢?其实,最终的罪魁祸首都是浏览器的同源策略,浏览器的同源策略限制我们只能在相同的协议.IP地址.端口号相同,如果有 ...

  4. iframe嵌套页面 跨域_跨域解决方案

    点击上方蓝色"后端开发杂谈"关注我们, 专注于后端日常开发技术分享 上一篇文章跨域资源共享我们讲到了, 在跨域访问的时候出现的问题, 以及基于跨域共享的方案解决跨域的问题, 那么还 ...

  5. 使用阿里云对象存储oos遇到跨域访问的问题

    使用阿里云对象存储oos遇到跨域访问的问题,因为第一次使用云存储,初级码渣查了好久文档,终于找到了解决方法. 大概就说了这么多,我的操作是来到oos概览一栏 ,找到跨域访问 做了一个最简单的配置,这样 ...

  6. 前端跨域问题汇总及解决方案

    "关注  前端开发社区 ,回复" 1" 即可加入  前端技术交流群,回复  " 2" 即可免费领取500G前端干货! 来源 | https://seg ...

  7. 跨域与jsonp及cors解决

    1. 什么是跨域? 跨域一词从字面意思看,就是跨域名嘛,但实际上跨域的范围绝对不止那么狭隘.具体概念如下:只要协议.域名.端口有任何一个不同,都被当作是不同的域.之所以会产生跨域这个问题呢,其实也很容 ...

  8. iframe 跨域_【梯云纵】搞定前端跨域

    韦陀掌法,难陀时间善恶:梯云纵,难纵过乱世纷扰. 现在开始写代码o(╯□╰)o 什么是跨域 1.跨域的定义 广义的跨域是指一个域下对的文档或者脚本试图去请求另外一个域下的资源. a链接.重定向.表单提 ...

  9. JavaScript跨域问题分析与总结_直来直往_百度空间

    JavaScript跨域问题分析与总结_直来直往_百度空间 JavaScript跨域问题分析与总结 2009-11-15 16:44 一.为什么需要JS跨域 假设我们构建了一个网上商城www.xxx. ...

最新文章

  1. 【根据网上其他没有解决】XAMPP报错Error: Apache shutdown unexpectedly
  2. 今天俺要说一说工厂方法模式(Factory)
  3. css工程化和浏览器兼容性问题
  4. 【渝粤教育】国家开放大学2018年秋季 0109-21T公司财务 参考试题
  5. 面向对象思想 常说的OOP五大原则就是指1、单一职责原则; 2、开放闭合原则; 3、里氏替换原则; 4、依赖倒置原则; 5、接口隔离原则。...
  6. Mybatis XML文件如何编写In语句
  7. CSS垂直居中,你会多少种写法?
  8. python正则化_如何最简单、通俗地理解Python的正则化?
  9. 【红绿灯识别】基于matlab红绿灯识别【含Matlab源码 1068期】
  10. 动态仙人掌 系列题解之二——3465: 动态仙人掌 II
  11. e4a和php教程,2019开源影视APP优化运营版+对接苹果cms10+全套类库E4A资源+开发文档+搭建教程源码...
  12. 树莓派 PWM 控制步进
  13. 电脑剪切后丢失的文件怎么恢复
  14. 涂鸦模组二次开发Zigbee 模组烧录
  15. 收入翻倍的企业,如何靠“游戏化”激活销售团队? | Superuser系列
  16. Excel分段求平均值
  17. 通过图形界面对MySQL数据库进行操作
  18. SecureCRT完美配色方案,护眼,炫酷,值得拥有
  19. E3-1231-V3 搭配华硕B85 -A R2.0 主板锁定全核心3.8GHZ以及M.2 NVME 固态硬盘作为系统盘bios
  20. 阿里二面,前端开发在web3.0中该如何应用,记录面经

热门文章

  1. java Scanner具有神奇的作用可惜大部分java开发人员不知
  2. 那些商人败类们在想什么
  3. python表示数字6_【Python 1-6】Python教程之——数字
  4. Xamarin提示Build-tools版本过老
  5. cuda 本地内存使用_CUDA 基础知识博客整理
  6. 五轴数控转台_各式五轴加工中心的优缺点比较
  7. 32位汇编语言helloworld_梦开始的地方——Hello World!
  8. unity获取电磁笔压感_1024级压感 原道W8S电磁笔的秘密
  9. 脑电分析系列[MNE-Python-4]| MNE中数据结构Evoked及其对象创建
  10. eeglab中文教程系列(3)-绘制通道光谱图