Javascript Can';无法获得Ajax调用的返回
我正在尝试进行一个AJAX调用,该调用将返回一个php文件的回声,但它不起作用。。。 所有文档都在同一文件夹中 .html文件(javascript部分):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
函数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中的“异步”意味着你不能马上得到返回值,这就是为什么你需要一个回调函数,它会在收到结果时被调用。看起来这就是问题所在。谢谢:)