2009-10-14 1 views
0

Mac OS X의 Apache 웹 서버에서 실행되는 html/javascript 웹 사이트를 만들었습니다.이 웹 사이트는 XmlHttpRequest를 통해 JSON으로 .NET 웹 서비스를 사용합니다. 이 웹 서비스는 Windows Vista 시스템에서 실행됩니다.자바 스크립트 XmlHttpRequest 문제

이 웹 사이트는 다음 url로 액세스 할 수 있습니다. 이 url을 사용하여 Mac에서 Safari를 사용하여 웹 사이트를 열면 Webservice에서 JSON 데이터가 다시 반환되지 않습니다.

URL을 file://Users/username/Sites/Sitename/index.html으로 열면 완벽하게 작동합니다.

첫 번째 생각은 XmlHttpRequest와 관련이 있으며 많은 브라우저에서 보안 제한 사항이 있습니다.하지만 절대 경로 대신 웹 서버를 통해 사이트를 호출하면 작동하지 않는 이유는 확실하지 않습니다. html 파일.

여기에 내가 WebService에 전화를 사용하는 코드 : 이런 일이 왜
<div id="eigenRisico" class="panel" title="Eigen Risico"> 
<h2>Eigen Risico Per Polis</h2>  
    <script type="text/javascript">   
    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", "http://webserviceurl/GetEigenRisicoVerzekerde", true);   
    xhr.onreadystatechange = function(){ 

     if (xhr.readyState === 4) { 
      var result = eval('(' +xhr.responseText+')');   
      var ihtml=""; 
      var j = 0; 
      for(i = 0; i < result.d.length/2; i++) { 
       ihtml=ihtml+"<fieldset><div class='row'><label>Polisnummer:</label><span>"+result.d[j]+"</span></div>"; 
       j++; 
       ihtml=ihtml+"<div class='row'><label>Resterend Eigen Risico:</label><span>&euro "+result.d[j]+"</span></div></fieldset>"; 
       j++; 
      }    
      document.getElementById('eigenRisico').innerHTML = ihtml; 
     } 
    }; 
    xhr.setRequestHeader("content-type", "application/json"); 
    var postData = '{"bsn": "999999999"}'; 
    xhr.send(postData); 
    </script>    
</div> 

누군가가 알고 있습니까

?

답변

3

당신은 할 수없는 도메인 간 아약스는

http://en.wikipedia.org/wiki/Same_origin_policy

사용자가 요청을 담당하고 리디렉션됩니다 자신의 도메인에 프록시 페이지를 설정하여이 문제를 얻을 수 있습니다

는 다음 리디렉션 참조 요청 그 결과는 당신에게 되돌려줍니다.

PHP를 실행하고 있습니까? 또는 다른 서버 측 처리? 파일에서 읽을 때

편집
그냥 원래의 문제를 명확히하기 위해 : //, 보안 정책에 http으로부터 다른 : //. 로컬 리소스는 신뢰할 수있는 것으로 간주되므로 Ajax 요청은 통과 할 수 있습니다. 웹 주소로서, 한 웹 사이트가 귀하의 이름으로 일을하고있는 것처럼 보일뿐입니다.

+0

감사합니다. 그게 더 명확 해집니다. :) – Rick

+0

감사합니다. 도움이되어 기쁘다. –