JavaScript同源策略之document.domain 跨域问题

Author : luckyGirl

为了增强安全性,浏览器中的JavaScript运行在一个沙箱中,沙箱是个保护环境,严格限制了对客户机的访问,JavaScript没有打开文件或创建文件的功能,这一语言在临时的环境中运行,一旦关闭浏览器或是退出web页面,这个临时环境就被丢弃了,如果传输了数据,就会通知用户等,其中同源策略也被纳入JavaScript引擎的安全策略中.

同源策略(Same-origin Policy):两个页面必需具有相同的域,协议和端口才能称之为同源,不同源的页面不能通过脚本进行通信.

但现在开发中同一域名下使用不同的主机名(子域)越来越流行,为了绕过这一限制,可以通过设置相同的document.domain来达到互相通信。document.domain可以在JavaScript中设置为上一级域,但不能设置为根域,例如http://www.yuuuuc.me的domain属性可以设置为lovecicy.com,但不能设置为.com或是luckygirl.com

document.domain在一定程度上解决了不同二级域名页面的跨域问题。需要注意的是,如果父页面包含多个iframe且设置了document.domain,那么要与其进行通信的iframe也必须设置document.domain。另外在chrome 18中,父子页面属于相同域名,当设置document.domain后,它们之间变的无法通信了,其他浏览器正常

standard
  1. lovecicy - 2013 年 3 月 11 日 5:36 下午

    好久没看到你活动了啊

    回复

Have your say