zoukankan      html  css  js  c++  java
  • 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页面

  • 相关阅读:
    冒泡排序
    tp框架---View视图层---模板继承(举例说明)
    tp框架---表单验证
    对thinkphp的命名空间的理解
    控制器操作方法的调用
    thinkphp的空控制器和空操作以及对应解决方法
    tp框架的url模式
    tp框架的MVC模式
    thinkphp目录结构
    Linux Centos 下安装软件 三种方式(转)
  • 原文地址:https://www.cnblogs.com/Walker-lyl/p/7454139.html
Copyright © 2011-2022 走看看