这是我的Ajax功能的一部分。由于某种原因,我无法弄清楚,我能够 alert() responseText但无法返回 responseText。有人可以帮忙吗?我需要在另一个函数中使用该值。
http.onreadystatechange = function(){
if( http.readyState == 4 && http.status == 200 ){
return http.responseText;
}
}
答案 0 :(得分:5)
您将无法处理从异步回调返回的返回值。您应该直接处理回调中的responseText
,或者调用辅助函数来处理响应:
http.onreadystatechange = function () {
if (http.readyState == 4 && http.status == 200) {
handleResponse(http.responseText);
}
}
function handleResponse (response) {
alert(response);
}
答案 1 :(得分:0)
怎么样:
function handleResponse (response) {
return response;
}
返回未定义的同步和异步模式
答案 2 :(得分:0)
function getdata(url,callback)
{
var xmlhttp;
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)
{
var result = xmlhttp.responseText;
callback(result)
}
}
xmlhttp.open("POST",url,true);
xmlhttp.send();
}
发送回调函数名作为此函数的第二个参数。 您可以获取该功能的响应文本。简单。但是你无法直接从异步调用中返回任何内容。