- A+
这个技巧再之前的文章中有过一些描述,这里主要进行详细的说明.利用document.domain进行跨域大家再熟悉不过了,腾讯所有的主业务基本上都用了这个玩意跨子域.
webkit的document.domain设置机制科普:
document.domain设置时只能往域名的上一级进行设置,例如www.mmme.me可以设置成mmme.me,但不能反过来.webkit的document.domain在设置时与其它浏览器有些差异.它并没有检测域,只是简单以点(“.”)进行分隔.也就是说这里我们可以设置成me,当主机名后面有个点的时候我们便可以设置为空(“””).
应用场景:
1.长度受限的情况.
2.document.domain可控:
document.domain="[here]";
亲情跨:
同一后缀范围内的域名,双方对将doucmne.domain指定为后缀时即视为亲情域,亲情域之间可享受无限制跨域的优惠. “.com.cn”这样的域名也属于”.cn”系列,所以可以与”.cn”的域名成为亲情域.
document.domain="com"
document.domain="net"
document.domain="cn"
优点:通杀效果好.
缺点:域名必须在同一后缀范围内.
全球跨:
全球跨实现客户在全球范围内同主域、同后缀、完全不同的域名之间跨域的统一,不收取任何跨域费.需要注意的是使用全球跨的时候必须在域名后面加个点(“.”),即 wooyun.org=>wooyun.org. 这样子.
document.domain=""
优点:短,不受域名限制,可以使用任意域名进行跨域操作.
缺点:一些服务器区分加点和没有点的主机.因为是不同的host了,所以可能获取不到用户登录cookie.