6

내부 서버 인 server1.mydomain.com/page.jsp에 페이지가 있고 다른 내부 서버에 다른 페이지 인 10.x.x.x : 8081/page.aspx가 있습니다.SECURITY_ERR : 두 사이트에서 document.domain을 적용 할 때 DOM 예외 18. 어떻게 해결할 수 있습니까?

는 server1.mydomain.com에, 나는 다음과 같이 page.jsp에 document.domain을 설정합니다

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

나는 document.domain을에 경고를 발행, 그것은 server1.mydomain.com로 온다.

//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; 

사파리 5.1.5에서 오류가 콘솔에 팝업 : 다음 10.xxx 서버에서

,이 같은 결과로, page.aspx에 document.domain을 설정

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

내가 아는 바로는 document.domain을 설정하면 포트 번호가 null로 설정됩니다. 그래서, 당신은 그것을했던 양쪽 끝에서 설정해야합니다. 그런 다음이 오류가 발생하고 왜 내 머리를 긁적입니다. 이것은 실제 도메인 이름이 아닌 10.x.x.x를 사용하고 있다는 사실과 관련이 있습니까?

감사합니다.

답변

15

document.domain을 사용하면보다 구체적인 하위 도메인에서 덜 구체적인 도메인으로 변경할 수 있습니다. 마찬가지로 ...

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

document.domain = 'mydomain.com' 

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

더 구체적인 하위 도메인 또는 전혀 다른 도메인으로 설정할 수 없습니다.

+0

그래서 두 서버가 mydomain.com에 있으면 mydomain.com으로 둘 다 변경하면 작동합니까? server1.subdomain.mydomain.com 및 server2.subdomain.mydomain.com이 있다고 가정 해보십시오. 둘 다 mydomain.com에 설정하면 작동합니까? – user717236

+1

@ user717236 : 클라이언트 페이지가'mydomain.com'에서 호스팅되는 경우'server1.subdomain.mydomain.com' 또는'server2 ...'로 AJAX 요청을 할 수없고'document를 사용합니다. 도메인'도움이되지 않습니다. 그러나 그 반대가 사실이고 클라이언트의 페이지가'server1.subdomain.mydomain.com'에서 호스팅되는 경우'document.domain'을 사용하면'mydomain.com'에 요청할 수 있습니다 . –

+0

오, 알았어요. 따라서 필자의 경우, 페이지가 효과적으로 hostname.subdomain.mydomain.com에서 호스팅되기 때문에 작동하지 않을 것이라고 생각합니다. 하나가 serverX.mydomain.com이고 다른 하나가 serverY.subdomain.mydomain.com 인 경우, 그걸로 뭔가 할 수 있습니다. 드로잉 보드로 돌아갑니다. 도와 줘서 고마워. – user717236

3

document.domain 만 현재 값 또는 현재 설정의 수퍼 도메인으로 설정할 수 있습니다. 따라서 "foo.something.com"의 페이지는 "something.com"이 아닌 "something.else.com"으로 설정할 수 있습니다.

+0

도움 주셔서 감사합니다. 예, 조금 더 잘 이해할 것 같습니다. 이 두 호스트는 설정된대로 document.domain을 사용하여 서로 통신 할 수 없습니다. 나는 다른 것을 생각해야 할 것이다. 다시 한번 감사드립니다. – user717236