2011-12-26 4 views
1

HTML로 iPhone 응용 프로그램에서 작업하고 있습니다. 원격 서버에 저장된 xml에서 콘텐츠를 검색하고 해당 콘텐츠를 목록에 표시해야합니다. xml 파일이 코드와 같은 서버에 저장 될 때다른 서버에서 Javascript로 XML을 읽을 때 오류가 발생했습니다.

이미이 달성 :

<body> 
     <div id="container"> 
      <div id="header"> 
       <h1><a href="./">BurgerFast</a></h1> 
       <p>Menú</p> 
       <div> 
        <div id="nav"> 
         <ul> 
          <span id="lista"></span> 
         </ul> 
        </div> 
        <div id="footer"> 
         <ul> 
          <li><a href="/assets/cl.png">Acerca de</a></li> 
          <li><a href="/assets/cl.png">Ayuda</a></li> 
         </ul> 
        </div> 
       </div> 
      </div> 
     </div> 

     <script type="text/javascript"> 
     if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
     else 
    {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
     xmlhttp.open("GET","assets/note.xml",false); 
     xmlhttp.send(); 
     xmlDoc=xmlhttp.responseXML; 

     var item = xmlDoc.getElementsByTagName("item") 

     var myElems = ""; 
     for(i = 0 ; i < item.length ; i++){ 
      myElems = myElems + "<li><a>" + item[i].getElementsByTagName("name")[0].childNodes[0].nodeValue + "</li></a>"; 
     } 

     document.getElementById("lista").innerHTML = myElems; 


     </script> 

    </body> 

지금까지 아무 문제. 동일한 서버에서 파일을 호스팅 할 때 멋지게 작동하지만 다른 서버의 xml을로드 할 수 있기를 원합니다. 내가 줄 변경하는 경우 :

xmlhttp.open("GET","assets/note.xml",false); 

을이 itlike 떠나 :

xmlhttp.open("GET","http://173.236.56.146/~crayonli/xml/note.xml", true); 

를 그것이 같은 빌어 먹을 XML, 난 그것을 얻을하지 마십시오 해당 xmldoc가 null입니다 때마다 나에게 말한다.

내 실수는 어디서 볼 수 없습니까? 누군가 말해 줄 수 있니?

+2

http://www.w3.org/Security/wiki/Same_Origin_Policy – Andreas

+1

로 John_doe는 다른 서버에서 Ajax를 호출 할 수 있다고 지적했다. 하지만이 http://en.wikipedia.org/wiki/JSONP – jcubic

+0

하하, n00b 실수로 jsonp를 사용할 수 있습니다. 고맙습니다. – Ivancho

답변

1

다른 도메인에서 XmlHttp을 사용할 수 없습니다. 교차 도메인은 지원되지 않습니다. 이 링크는 당신에게 도움이 될 수

프록시 메커니즘을 사용하거나 XMLHTTP 크로스 도메인을 구글 수를 달성하기 위해 ... 더 XmlHttp Corss Domain Proxy

+0

그 이유는 내가 크로스 도메인으로 예제를 찾지 못하는 이유입니다. 나는 너의 도움 녀석을 정말로 감상한다. – Ivancho

+0

몇 가지 대답에 만족한다면 좋은 점을 받아 들여야합니다. :) – Kris

+0

도메인에서 XHR을 사용할 수 있지만 서버가 JSONP를 반환하는 경우에만 가능합니다. 서버에서 XML 만 반환하는 경우 자체 프록시를 만들어야합니다. 참고 : PHP에서 프록시를 배포하는 것이 .NET보다 훨씬 쉽지만 마음에 들지 않으므로 프록시가 한 서버에만 연결되고 HTML이 GET 매개 변수 등을 인코딩하여 누군가가 프록시를 악용하지 못하도록해야합니다. PHP 프록시 응답이있는 게시물 : http://stackoverflow.com/questions/11778074/parsing-xml-data-from-a-remote-website – Sean

관련 문제