2011-01-27 14 views
1

bar.domain.com에있는 프록시를 통해 API에 액세스하려고합니다. 그리고 foo.bar.domain.com에있는 스크립트를 통해 액세스하고 있습니다. 그래서 나는 same origin policy에 맞선다.Document.domain이 예상대로 작동하지 않습니다.

foo.bar.domain.com에로드 된 첫 번째 스크립트 상단에 document.domain = "bar.domain.com"을 설정합니다.

인스펙터에서이 줄 바로 다음에 실행을 일시 중지하고 document.domain을 검사하면 bar.domain.com을 반환합니다. .ajax가 실행되기 직전에 일시 중지하는 것과 동일하며 모든 자바 스크립트가 실행 된 후 확인하는 것과 동일합니다.

불행하게도, 난 여전히 받고 있어요 : Origin http://foo.bar.domain.com is not allowed by Access-Control-Allow-Origin.

을 내가 살아있는 예를 들어 줄 수 있으면 좋겠다, 아아, 나는이 질문을 받았다하지 않음 :이 문제를 해결하거나 디버깅 할 수 방법에 대한/

어떤 아이디어? 당신이 줄 수있는 도움에 대해 너무 고마워요.

+0

아직 동일한 프로토콜을 사용하고 있습니까? Domain.com은 실제로 .com 도메인입니다. 어떤 브라우저에서이 기능을 사용하고 있습니까? 포트를 전환하지 않습니까? 몇 가지 코드를 보여줄 수 있습니까? –

+0

우리는 실제로 동일한 프로토콜과 포트에 머무르고 있습니다. 내 코드에 requireJS를 사용하고 있으므로 영향을받는 피스의 매우 단순화 된 모델입니다. http://jsfiddle.net/WSEue/ –

답변

1

나는 모두 사이트는 document.domain을 "bar.domain.com"으로 설정해야한다고 생각합니다. 두 페이지 모두 상호 운용하려는 의도를 명시해야하기 때문입니다. "bar.domain.com"페이지가 이미 document.domain —과 동일한 문자열을 가지고 있어도 명시 적으로 설정해야합니다.

Here은 몇 가지 설명이있는 MDC 페이지입니다.

+0

현재이 부분을 소화해야합니다. 맨 아래에 메모를하면 생각이 옳은 것 같습니다. MDC 나 다른 곳에서 document.domain을 더 자세히 명시하지 않은 것에 놀랐습니다. 아니면 여러 번 놓친 것일 수도 있습니다 ... 짧은 순서로보고 할 것입니다. –

+0

[MSDN 페이지에서] 똑같은 말을합니다. (http://msdn.microsoft.com/en-us/library/ms533028 (v = vs.85) .aspx) – Pointy

관련 문제