document.domain设置为超级域以允许跨子域调用是一种非常常见的做法。它曾经工作到火狐 23,但在升级到火狐 24 后我遇到了这个问题。
当我的网址说 - def.abc.mycompany.com
document.domain = "mycompany.com" - WORKS
document.domain = "abc.mycompany.com" - WORKS
def.abc.mycompany.com 基本上是 ec2-123-345-2678-91.compute-1.amazonaws.com 的别名,但是当我在同一台服务器上执行此操作时
document.domain = "amazonaws.com" - ERROR
document.domain = "compute-1.amazonaws.com " - ERROR
它抛出 - NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN:非法的文档域值
还有其他人在FF-24上遇到同样的问题吗?他们是否禁用了将文档域设置为任何云提供商的域?我在Chrome和Safari上看不到这个。
amazonws.com 不是 def.abc.mycompany.com 的超级域。服务器别名(CNAME等)在Web同源安全性方面无关紧要。
如果您从 ec2-123-345-2678-91.compute-1.amazonaws.com 加载,您可能会将域设置为 amazonws.com,但这也是一个糟糕的主意,因为任何托管 amazonws.com 的人都会与您同源并可能窃取数据。
我刚刚找到了amazonaws.comcompute-1.amazonaws.com添加到顶级域列表中。检查这个:https://wiki.mozilla.org/Public_Suffix_List