JavaScript:location.hostname和document.domain之间的区别是什么?

31
使用 location.hostname 和 document.domain 有什么区别?
我认为用一个例子来解释会更加清晰。
1个回答

17

看起来document.domain是只读属性,除了在Mozilla中,该属性可以更改用于同源策略的域的值(例如 AJAX 请求),而无需实际更新页面。

对此的限制与同源策略的相同规则。

至少这是我对MDC文档中document.domain的理解

文档如下:

获取/设置当前文档来源的域部分,作为同源策略使用。

...

在DOM HTML规范中,该属性被列为只读。然而,Mozilla将允许你将其设置为当前值的超域,受其基域的限制。例如,在developer.mozilla.org上,可以将其设置为“mozilla.org”,但不能设置为“mozilla.com”或“org”。

尝试在控制台中更新document.domainwindow.location.hostname的值,并查看差异。


似乎在Safari/Chrome/Firefox中很有用(尚未在IE或Opera中进行测试)。您基本上可以将子域减少到其超级域之一(除TLD外)以受同源策略影响的目的。它不会改变页面本身的位置。 - user113716
这正是它的用途。只有在你改变它时才有用。 - Tim Down
@Tim:这个我之前没遇到过,你知道它在IE中作为一个非只读属性是否被支持吗?否则,我稍后会启动VMWare进行测试。 - user113716
是的,在IE中支持非只读模式,我想从版本4开始就支持了。 - Tim Down
@Tim - 非常感谢!省去了我的麻烦。非常感激。 - user113716

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接