Javascript Can';无法获得Ajax调用的返回

Javascript Can';无法获得Ajax调用的返回,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我正在尝试进行一个AJAX调用,该调用将返回一个php文件的回声,但它不起作用。。。 所有文档都在同一文件夹中 .html文件(javascript部分): 函数GetData() { var-xmlhttp; xmlhttp=新的XMLHttpRequest(); xmlhttp.onreadystatechange=函数() { if(xmlhttp.readyState==4&&xmlhttp.status==200) { 返回xmlhttp.responseText; } } open

我正在尝试进行一个AJAX调用,该调用将返回一个php文件的回声,但它不起作用。。。 所有文档都在同一文件夹中

.html文件(javascript部分):


函数GetData()
{
var-xmlhttp;
xmlhttp=新的XMLHttpRequest();
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
返回xmlhttp.responseText;
}
}
open(“GET”,“test.php”,true);
xmlhttp.send();
}
var Order2=GetData();
document.getElementById('Order2')。innerHTML=Order2;
.php文件:

<?php
echo "HELLO!";
?>

有人知道为什么这不起作用吗?我的浏览器是谷歌浏览器


提前感谢:)

在处理异步操作(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;
});

您无法返回,因为当您返回时,响应还不可用。这就是为什么在收到响应后使用回调函数进行调用。

在处理异步操作(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;
});

您无法返回,因为当您返回时,响应还不可用。这就是为什么在收到响应后使用回调函数进行调用。

在处理异步操作(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;
});

您无法返回,因为当您返回时,响应还不可用。这就是为什么在收到响应后使用回调函数进行调用。

在处理异步操作(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;
});

您无法返回,因为当您返回时,响应还不可用。这就是为什么在收到响应后使用回调函数进行调用。

我认为该主题的用户使用的是jquery,而我不是。@Topast-原则是一样的。@Topast阅读该问题的答案。jQuery和XHR用户都有解决方案。您的问题已被详细介绍。我认为该主题的用户正在使用jquery,而我不是。@Topast-原则是一样的。@Topast请阅读该问题的答案。jQuery和XHR用户都有解决方案。您的问题已被详细介绍。我认为该主题的用户正在使用jquery,而我不是。@Topast-原则是一样的。@Topast请阅读该问题的答案。jQuery和XHR用户都有解决方案。您的问题已被详细介绍。我认为该主题的用户正在使用jquery,而我不是。@Topast-原则是一样的。@Topast请阅读该问题的答案。jQuery和XHR用户都有解决方案。+1是的,AJAX中的“异步”意味着您不能立即获得返回值,这就是为什么您需要一个回调函数,它将在收到结果时被调用。似乎这就是问题所在。谢谢:)+1是的,AJAX中的“异步”意味着你不能马上得到返回值,这就是为什么你需要一个回调函数,它会在收到结果时被调用。看起来这就是问题所在。谢谢:)+1是的,AJAX中的“异步”意味着你不能马上得到返回值,这就是为什么你需要一个回调函数,它会在收到结果时被调用。看起来这就是问题所在。谢谢:)+1是的,AJAX中的“异步”意味着你不能马上得到返回值,这就是为什么你需要一个回调函数,它会在收到结果时被调用。看起来这就是问题所在。谢谢:)