2014-04-20 2 views
0

PHP 파일의 반향을 반환하는 AJAX 호출을 만들려고 시도하고 있지만 작동하지 않습니다 ... 모든 문서가 동일한 폴더에 있습니다.Ajax 호출의 반환을 얻을 수 없습니다.

.html 파일 (자바 스크립트 부분) :

<script> 

function GetData() 
{ 
var xmlhttp; 

    xmlhttp=new XMLHttpRequest(); 

xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    return xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","test.php",true); 
xmlhttp.send(); 
} 

var Order2 = GetData(); 
document.getElementById('Order2').innerHTML = Order2; 
</script> 

.PHP 파일이 작동하지 않는 이유

<?php 
echo "HELLO!"; 
?> 

사람이 알고 있나요? 내 브라우저는 Google 크롬입니다. 사전 :

+0

해당 항목의 사용자가 jquery를 사용하고 있다고 생각합니다. – Topast

+1

@Topast - 원칙은 동일합니다. – Quentin

+2

@Topast 해당 질문에 대한 답변을 읽어보십시오. jQuery 및 XHR 사용자를위한 솔루션이 있습니다. 귀하의 문제는 세부적으로 다룹니다. –

답변

3

에서

감사 비동기 작업 (AJAX, 타임 아웃) 작업 할 때 당신은 당신의 접근 방식을 변경해야합니다. 다음과 같이 입력하십시오 :

function GetData(callback) { 

    var xmlhttp = new XMLHttpRequest(); 

    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      callback(xmlhttp.responseText); 
     } 
    } 

    xmlhttp.open("GET", "test.php", true); 
    xmlhttp.send(); 
} 

GetData(function(data) { 
    document.getElementById('Order2').innerHTML = data; 
}); 

응답을 반환 할 때 아직 응답 할 수 없기 때문에 반환 할 수 없습니다. 그래서 콜백 함수를 사용하여 응답을 받으면 호출됩니다.

+0

+1 예, AJAX의 "비동기"는 곧바로 반환 값을 얻지 못한다는 의미이므로 결과를 수신 할 때마다 호출되는 콜백이 필요한 이유입니다. –

+0

그게 문제였던 것 같습니다. 감사 :) – Topast

관련 문제