문제

내가 이해(나는 생각한다)XmlHttpRequest 개체을 준수하고"동일한 도메인"정책이 있습니다.그러나,나를 만들려는 간단(POC)로컬 html 파일을 다운로드 XML 에서는 웹 서버가 그것으로(로 시작하자 간단한"경고()").

그것은 가능한가요?필요한 특별한 파이어 폭스 config option?

서버에서는 내가 노력하고 다운로드 나의 통제의 밑에(실제로 Google API).

나의 간단한 시도는 코드 Mozilla 의 사용하여"XMLHttpRequest"페이지.그것은 오류를 반환합니다 난 정말 이해서"send"방법입니다.

면책 조항:나는 주로 C/C++개발자-해본 적이 어떤 심각한 JS 프로그래밍,지 않도 이러한 Api 를 사용하는.

도움이 되었습니까?

해결책

xmlhttprequest는 실제로 동일한 도메인 정책의 훨씬 엄격한 구현을 준수합니다. 문서를 설정할 수 있지만 두 하위 도메인에서 제공되는 JavaScript가 서로 대화 할 수 있도록 Domain 속성을 설정할 수 있습니다. 귀하의 경우 완전히 다른 도메인으로 이동하면 JavaScript로도 그렇게 할 수 없었습니다.

몇 가지 옵션이 있습니다. 먼저, 리버스 프록시를 사용하여 외부 사이트가 사이트의 하위 도메인 인 것처럼 보일 수 있습니다. Apache의 mod_proxy, 특히 proxypassreverse를 살펴보십시오.

또 다른 대안은 데이터를 JSON 개체로 반환하는 것입니다.u003Cscript src="foo"> can retrieve whatever data it wants from wherever it wants. Downside of this is that it's not (easily) repeatable (as in multiple requests from same page).

또한 "Google Mashups"에 대한 Google을 추천합니다. 이들 대부분은 "Googlemashops.com"도메인에 살고있어 구현이 훨씬 쉬워집니다. 그 도메인 외부에 살면서 몇 가지 아이디어를 줄 수 있습니다.

편집 : xmlhttprequest 객체를 직접 사용하는 대신 Prociple.js와 같은 타사 라이브러리를 거치는 것이 좋습니다.

다른 팁

검색하려는 XML이 Google의 JS API 중 하나에 의해 반환되는 경우 XMLHTTPREQUEST가 필요하지 않습니다 (페이지 Anway와 동일한 도메인에서만 사용할 수 있기 때문에).

따라서 Maps One과 같은 Google API를 사용하는 경우 일반적으로 페이지 어딘가에 공통 API에 대한 참조를 추가하여 시작합니다.

<script type="text/javascript" src="http://www.google.com/jsapi?key=your_google_api_key"></script>

그런 다음 페이지에 사용할 특정 API에 대한 참조를 추가하십시오.

<script type="text/javascript">google.load("maps", "2");</script>

이제 해당 API가 제공 한 다양한 기능을 호출 할 수 있습니다.

<script type="text/javascript">
  function initialize() {
    var map = new google.maps.Map2(document.getElementById("map"));
    map.setCenter(new google.maps.LatLng(41.86, 87.68), 13);
  }
  google.setOnLoadCallback(initialize);
</script>

xmlhttprequest가 필요하지 않습니다 :)

당신이 사용할 수 있습 JSONP 니다.나는 그것을 jQuery 를 사용하고 PHP.기본적으로 사용 PHP 프록시하는 포장 JSON 답변도록 jQuery 은 그것을 처리할 수 있습니다.그것은 BSD.

또는 IE8을 사용해보십시오. 웹 사이트가 아닌 디스크에서 실행중인 경우 IE8은 모든 일반 도메인 제한을 무시하고 원하는 데이터를 얻습니다.

jQuery (및 아마도 XHR이지만 직접 사용하지 않으려 고 노력합니다)를 사용하면 비정상적인 헤더 또는 비 게이러 메소드를 지정하지 않는 경우 행복하게 도메인 크로스 메이메이 요청을 수행 할 수 있습니다. 이를 사용하려면 옵션 요청을 활성화하려면 서버를 제어해야합니다.

보다 https://developer.mozilla.org/en/http_access_control 자세한 내용은.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top