我提交表單,但需要我的表單,先運行一些檢查,所以我打電話在一些JavaScript需要運行一個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 2012-07-24 16:24:20
啊,是的,這是有道理的,我將如何讓它等待響應而不先運行其他代碼? – user1482082 2012-07-24 16:30:57
您可以使用承諾 - 我發現了很多StackOverflow有關使用XMLhttpRequest承諾的答案 – 2017-03-02 14:10:34