Javascript实现跨域的要点分析

发布时间:2022-10-24 09:05:57

document.domain用来得到当前网页的域名。

比如在地址栏里输入:

Javascript实现跨域的要点分析

代码如下:

javascript:alert(document.domain);//

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

比如:

代码如下:

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

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

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

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

代码如下:

javascript:alert(document.domain="");//参数无效

javascript:alert(document.domain="");//参数无效

因为与不是当前的域名也不是当前域名的基础域名,所以会有错误出现。

这是为了防止有人恶意修改document.domain来实现跨域偷取数据。

利用document.domain实现跨域:

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

Javascript出于对安全*的考虑,而禁止两个或者多个不同域的页面进行互相*作。

相同域的页面在相互*作的时候不会有任何问题。

比如在:的一个网页(a)里面利用iframe引入了一个里的一个网页(b)。

这时在a里面可以看到b里的内容,但是却不能利用javascript来*作它。因为这两个页面属于不同的域,在*作之前,js会检测两个页面的域是否相等,如果相等,就允许其*作,如果不相等,就会拒绝*作。

这里不可能把a与b利用JS改成同一个域的。因为它们的基础域名不相等。(强制用JS将它们改成相等的域的话会报跟上面一样的"参数无效错误。")

所以如果在a里引入里的另一个网页,是不会有这个问题的,因为域相等。

有另一种情况,两个子域名:

aaa里的一个网页(a)引入了bbb里的一个网页(b),

这时a里同样是不能*作b里面的内容的。

因为document.domain不一样,一个是,另一个是。

这时我们就可以通过Javascript,将两个页面的domain改成一样的,

需要在a里与b里都加入:

代码如下:

document.domain="";

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

看了Javascript实现跨域的要点分析还看了:
  • 会计现状分析报告的主要分析要点

    1)会计行业生命周期。通过对会计行业的市场增长率、需求增长率、产品品种、竞争者数量、进入壁垒及退出壁垒、技术变革、用户购买行为等研判行业所处的发展阶段;2)会计行业市场供需平衡。通过对会计行业的供给状况、需求状况以及进出口状况研判行业的供需...

  • 堆的javascript实现方法

    堆的定义最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。另外,记住这两个概念,对写代码太重要了:1、父节点和子节点...

  • 关于javascript中cookie对象用法的实例分析

    本文实例讲述了javascript中cookie对象用法。分享给大家供大家参考。具体如下:属*name唯一必须设置的属*,表示cookie的名称expires指定cookie的存活周期,如不设置,浏览器关闭自动失效path决定cookie对...

  • 分析JavaScript类型系统之Math

    开门必读math和其他对象不同,Math对象是一个静态对象,而不是构造函数。实际上,Math只是一个由Javascript设置的对象命名空间,用于存储数学函数属*Math.E自然对数的底数,即常量e的值(约等于2.718)Math.PI派的...

  • 写读后感的要点分析

    一、格式和写法读后感通常有三种写法:一种是缩写内容提纲,一种是写阅读后的体会感想,一种是摘录好的句子和段落。题目可以用《×××读后感》,也可以用《读×××有感》。二、要选择自己感受最深的东西去写,这是写好读后感的关键。看完一本书或一篇文章,...