内部サーバー 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 を使用していることと関係がありますか?
ありがとうございました。