양식을 제출하고 있지만 일부 양식을 제출하기 위해 먼저 양식을 제출해야하므로 XMLHttpRequest를 실행하여 뭔가가 설정되어 있는지 확인해야합니다. 다른 PHP 스크립트에서. 내가 다시 값을 얻을 수 있지만 출력은 내가 반응을 얻고 지역 내 메시지는 변수에 이것을 넣고 작동하지 않는 다른 곳에서 사용하는 모든 시도가 여기 내 스크립트입니다 :Javascript XMLHttpRequest 결과가 다른 용도로 변수에 저장되지 않습니다.
function validateform() {
var complete = "Please fill in the following fields:";
var temp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
temp=xmlhttp.responseText;
alert(temp);
}
}
xmlhttp.open("GET","hrp/recaptcha/verify.php",true);
xmlhttp.send();
alert(temp);
첫 번째에게 "alert (temp)"는 출력되지만, 코드 끝 부분에는 항상 undefined가 표시되므로 외부에서는 사용할 수 없습니다.
아이디어가 있으십니까? 감사합니다 : D
당신이 당신이 원하는 것이 경우 비동기 호출을 원하지 않는 것으로 보인다
을 AJAX가 비동기 적으로 실행되면 값이 반환 될 때까지 기다려야합니다. 두 번째 경고는 즉시 실행되며 값이 아직 없습니다. 첫 번째는 데이터가 실제로 수신되었을 때 실행되는 콜백과 함께 실행됩니다. – TheZ
아, 그렇습니다. 다른 코드를 먼저 실행하지 않고 응답을 기다리게하려면 어떻게해야합니까? – user1482082
당신은 약속을 사용할 수 있습니다 - XMLhttpRequest와 함께 약속을 사용하는 것에 대한 많은 StackOverflow 응답을 발견했습니다. –