6

内部サーバー server1.mydomain.com/page.jsp にページがあり、別の内部サーバー 10.xxx:8081/page.aspx に別のページがあります。

server1.mydomain.com で、page.jsp に document.domain を次のように設定します。

//page.jsp on server1.mydomain.com
document.domain = document.domain;

document.domain でアラートを発行すると、server1.mydomain.com として表示されます。

10.xxx サーバーで、page.aspx に document.domain を設定した結果、次のようになりました。

//page.aspx on 10.x.x.x
document.domain = "server1.mydomain.com";
// test if same-origin policy violation occurs
document.getElementById("div_el").innerHTML = window.top.location.href;

Safari 5.1.5 では、コンソールにエラーが表示されます。

SECURITY_ERR: DOM Exception 18: An attempt was made to break through the security policy of the user agent."

私の理解では、document.domain を設定すると、ポート番号が null に設定されます。そのため、両端に設定する必要があります。すると、このエラーが発生し、なぜだか頭を悩ませています。これは、実際のドメイン名ではなく 10.xxx を使用していることと関係がありますか?

ありがとうございました。

4

2 に答える 2

15

document.domainより具体的なサブドメインからより具体的でないドメインに変更するためにのみ使用できます。お気に入り...

console.log(document.domain); // server1.mydomain.com

document.domain = 'mydomain.com'

console.log(document.domain); // mydomain.com

より具体的なサブドメインまたはまったく異なるドメインに設定するために使用することはできません。

于 2012-04-05T19:09:57.773 に答える
3

document.domain現在の値または現在の設定のスーパードメインにのみ設定できます。したがって、「foo.something.com」のページは「something.com」に設定できますが、「something.else.com」には設定できません。

于 2012-04-05T19:09:23.107 に答える