2012-06-23 3 views
0

두 개의 개발 사이트에 api.localhostgame.localhost이 있습니다. 둘 다 실제 서버에서 실행되는 것과 동일한 이전 버전의 Apache에서 실행되므로 필요하지 않으면 변경하지 않으려 고합니다. 또한 이전 버전의 PHP를 실행하고 있습니다 (다시 말해서 업데이트하지 않으려는 경우).두 개의 테스트 사이트 인 ajax는 하나만 작동합니다.

문제는 api.localhost에서 테스트 페이지 (아래에 재현)를 실행해도 문제가되지 않습니다. game.localhost에서 같은 페이지를 실행하면 실패합니다. 처음에는 실패가 jquery.jsonrpc 때문이라고 생각 했었습니다. 당시 jquery.jsonrpc이 사용 중이므로 jQuery 아약스 호출을 사용하는 것으로 줄였습니다. 나는 간단한 jsonrpc 응답을 호출하는 index.php 파일의 응답을 줄였다. 실제 아약스 호출은 다른 SO 질문에서옵니다. Firebug 콘솔은 놀랍게도 요청의 빨간색 문자열 뒤에 200 OK이라고 표시하고 그 아래에 응답이 없습니다. 두 사이트 모두 그것에 JQuery와 동일한 버전이

  • :

    것들 내가 살펴 보았다.

  • 가상 호스트가 괜찮아 보입니다. 오류 로그 파일 이름이 다르다는 점만 다릅니다.
  • 많은 favicon 오류를 제외하고는 오류 로그에 아무것도 없습니다.
  • 호스트 파일이 정상적으로 보입니다. 거기에 특이한 것은 없습니다.

index.html을

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<title>test</title> 
<head> 
<body> 
<script type="text/javascript" src="jquery.js"></script> 
<script> 
$(document).ready(function() { 
    $.ajax({ 
     url: 'http://api.localhost/index.php', 
     data: JSON.stringify({jsonrpc:'2.0',method:'add', params:[1400,2100],id:"jsonrpc"}), // id is needed !! 
     type:"POST", 
     dataType:"json", 
     success: function (result) { 
      alert("ok"); 
     }, 
     error: function (err,status,thrown) { 
      alert ("this syntax sucks!! " + " ERROR: " + err + " STATUS: " + status + " " + thrown); 
     }, 
     complete: function (xhr,status) { 
      alert('Complete=> showing status as: '+ status); 
      data = $.parseJSON(xhr.responseText); 
      alert (data); 
     } 
    }); 
}); 
</script> 
test 
</body> 
</html> 

api.localhost/index.php에 앞서가는 서비스되는 요청을 방해하는 어떤

<?php 
print '{"jsonrpc": "2.0", "result": 19, "id": 1}'; 
?> 

?

답변

0

Same origin policy은 하위 도메인간에 AJAX 호출을 할 수 없도록합니다.

당신은 교차 하위 도메인 요청을 허용하도록이 줄을 추가 시도 할 수 있습니다 :

document.domain = "localhost"; 

또 다른 방법은 동일 출처 정책 해결하기 위해 JSONP을 사용하는 것입니다.

+0

라이브 서버에서도 작동합니까? 이 접근법의 단점은 무엇입니까? –

+0

응답이 생성되지 않았습니다 - 실패 메시지조차 없습니다. –

+0

CORS가가는 길 같습니다. http://en.wikipedia.org/wiki/Cross-origin_resource_sharing –

관련 문제