我们有一个包含两个字母的域名。这是IE的一个问题,适用于所有版本。
问题是,当我们设置document.domain="xx.yy"时,我们会得到一个“无效参数”异常。
有没有人对如何解决这个bug有一个解决方案或想法?
致敬,托比亚斯
发布于 2010-11-01 21:26:18
对于哪些域可以用作跨文档脚本和cookie共享的共享父域,存在一些限制。
这是有意为之的:否则,example.co.uk和other-example.co.uk可能会充当同一站点co.uk的一部分。出于隐私和安全方面的原因,浏览器不希望这样做。
问题是,域名系统没有一个官方的方式来声明co.uk是一个注册分配的域名,不同的组织生活在这个域名下,但bit.ly是一个单一的组织。这在一些地方甚至更难,比如.jp,它既有直接的组织子域,也有像co.jp这样的注册分配子域名。
因此,浏览器有内部规则,即哪些域应该被视为“公共”,并且不应该被允许共享脚本/凭证上下文,并且当有新的TLD和SLD时,这些规则必须更新。较旧的浏览器可能无法识别较新的域名。
有些浏览器从Public Suffix List获取信息,但不是IE。IE似乎在使用启发式方法,对于它不知道的TLD,并且有一个特殊情况,一个由2个字母组成的子域xx.yy很可能是一个公共域(像co.uk,or.jp或其他什么),不应该被允许作为一个共享父域。这是一个合理的猜测,国际海事组织:最好是“故障安全”。
我不认为你能绕过它。你想做什么,有没有别的办法?你能把所有跨子域名的脚本东西放在一个子子域名里吗?
https://stackoverflow.com/questions/4068699
复制相似问题