2011-01-14 2 views
0

내 웹 사이트 nathannifong.com 및 uncc.ath.cx를 가리키는 두 개의 도메인 이름이 있습니다. 사이트의 Javascript가 가끔 XMLHttpRequest를 사용하여 리소스를 가져와야합니다. 클라이언트 스크립트의 모든 리소스 URL은 nathannifong.com을 참조하며 사용자가 uncc.ath.cx를 통해 사이트를 방문하면 JavaScript의 교차 도메인 보안 정책으로 인해 스크립트가 실패합니다.JavaScript 대체 도메인 이름에서 액세스 할 때 XMLHttpRequest가 깨집니다.

사용자가 도메인 이름으로 사이트를 방문 할 수 있도록 변경해야하지만 XMLHttpRequests가 여전히 작동합니까?

답변

1

URL에서 도메인 이름을 사용하여 Ajax 요청을하는 경우 도메인을 제거하면 도메인이 사용자가 사용중인 도메인에 자동으로 매핑되므로 도메인 간 문제가 발생하지 않습니다.

+0

XMLHttpRequest는 http://nathannifong.com/LayerCake/simdata/rec1_i0.csv를로드 할 수 없습니다. Access Control-Allow-Origin은 http://uncc.ath.cx의 출처를 허용하지 않습니다. 요청은 "simdata/rec1_i0.csv"에 대한 것입니다. – Nathan

+0

요청 URL을 nathannifong.com/LayerCake/simdata/rec1_i0.csv에서 /LayerCake/simdata/rec1_i0.csv로 변경하면 작동합니다. – Chandu

+0

나는 그랬고, 어쨌든이 오류가 발생했습니다. 이것이 일어날 수있는 다른 이유가 있습니까? – Nathan

0

The CodeProject에 따르면 JSONP가이를 수행하는 방법입니다. 그러나 나는 그것을 사용하지 않았지만 거기를 보길 가치가있을 것입니다.

1

xhr은 the same origin policy에 의해 금지되며 이미 언급 한 것처럼 jsonp를 사용하여 교차 도메인에서 작동하지 않습니다.

+0

내가 틀렸다면 나를 바로 잡는다. 그러나 그는 같은 호스트를위한 2 개의 도메인 이름이있는 상황을 설명하고있다. .. 이것은 SOP를 위반하지 않는다. 그것은 여전히 ​​같은 호스트이기 때문이다. 포트 및 프로토콜. 그냥 다른 도메인 이름. – benlozano

0

window.location에서 페이지의 도메인을 확인한 다음 요청을로드 할 수 있습니까? 그렇게하면 요청이 올바른 도메인으로 이동했는지 확인할 수 있습니다. JSONP를 살펴볼 수도 있지만 GET 요청에만 해당됩니다.

관련 문제