js设置document.domain实现跨域的注意点分析

 更新时间:2015年05月21日 11:43:01   作者:yaoyuan_difang  
这篇文章主要介绍了js设置document.domain实现跨域的注意点,较为详细的分析了document.domain跨域的相关技巧,需要的朋友可以参考下

本文实例分析了js设置document.domain实现跨域的注意点。分享给大家供大家参考。具体分析如下:

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

复制代码 代码如下:
javascript:alert(document.domain); //www.jb51.net

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

复制代码 代码如下:
javascript:alert(document.domain = "jb51.net"); //jb51.net
javascript:alert(document.domain = "www.jb51.net"); //www.jb51.net

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

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

复制代码 代码如下:
javascript:alert(document.domain = "cctv.net"); //参数无效
javascript:alert(document.domain = "www.jb51.net"); //参数无效

因为cctv.net与www.jb51.net不是当前的域名也不是当前域名的基础域名,所以会有错误出现。
这是为了防止有人恶意修改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";

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

希望本文所述对大家的javascript程序设计有所帮助。

相关文章

  • 支付宝小程序自定义弹窗dialog插件的实现代码

    支付宝小程序自定义弹窗dialog插件的实现代码

    支付宝小程序官方提供的alert提示框、dialog对话框、model弹窗功能比较有限,有些都不能随意自定义修改的。这篇文章主要介绍了支付宝小程序自定义弹窗dialog插件的实现代码,需要的朋友可以参考下
    2018-11-11
  • 键盘上下键移动选择table表格行的js代码

    键盘上下键移动选择table表格行的js代码

    通过键盘上的上下键可以选择表格行的实现效果代码。思路不错,需要的朋友可以参考下。
    2009-12-12
  • JS getAttribute和setAttribute(取得和设置属性)的使用介绍

    JS getAttribute和setAttribute(取得和设置属性)的使用介绍

    本篇文章是对JS中的getAttribute和setAttribute(取得和设置属性)的使用进行了详细的分析介绍,需要的朋友可以参考下
    2013-07-07
  • Bootstrap CSS组件之导航(nav)

    Bootstrap CSS组件之导航(nav)

    这篇文章主要为大家详细介绍了Bootstrap CSS组件之导航(nav),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • JavaScript两种axios取消请求方式小结

    JavaScript两种axios取消请求方式小结

    本文主要介绍了JavaScript两种axios取消请求方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • JS中的6种打断点的方式实例总结

    JS中的6种打断点的方式实例总结

    断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了,下面这篇文章主要给大家介绍了关于JS中6种打断点方式的相关资料,需要的朋友可以参考下
    2022-04-04
  • JavaScript中for与forEach分别如何跳出循环

    JavaScript中for与forEach分别如何跳出循环

    forEach的优势一个是它的回调函数形成了一个作用域,它的curItem和i不会像for循环一样污染全局变量,这篇文章主要给大家介绍了关于JavaScript中for与forEach分别如何跳出循环的相关资料,需要的朋友可以参考下
    2024-01-01
  • JS支付页面倒计时的实现示例

    JS支付页面倒计时的实现示例

    本文主要介绍了JS支付页面倒计时的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • 前端在线预览PDF文件三种实现方式(兼容移动端)

    前端在线预览PDF文件三种实现方式(兼容移动端)

    这篇文章主要介绍了前端在线预览PDF文件三种实现方式的相关资料,分别是使用微软在线预览地址、直接使用window.open打开文档链接以及使用PDF.js,PDF.js方法稳定,适用于大多数文件,每种方法都给出了详细的代码示例,需要的朋友可以参考下
    2025-02-02
  • js读取并解析JSON类型数据的方法

    js读取并解析JSON类型数据的方法

    这篇文章主要介绍了js读取并解析JSON类型数据的方法,具体分析了json格式的功能、用途与JS解析技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11

最新评论