我哥哥之前编写的代码,但我认为我错误地改变了他,也许你可以看出为什么他不会返回XML数据。
function CheckFromTo(From,To)
{
//alert(From + "," + To);
var xmlHttp = null;
var Url = "http://www.fpl.co.il/bo/info/CheckFromTo.aspx?FROM=" + From + "&TO=" + To + "";
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = ProcessRequest;
xmlHttp.open( "GET", Url, true );
xmlHttp.send(null);
return (ProcessRequest());
function ProcessRequest()
{
if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 )
{
var response = xmlHttp.responseText;
return response;
}
}
}
答案 0 :(得分:1)
查看您的XMLHttprequest对象
xmlHttp.open( "GET", Url, true ); <-- the true Boolean
open方法中的true布尔值意味着您正在使用异步调用,这意味着您无法返回值。欢迎使用异步编程。
为什么它返回undefined?
当统计数据不是200且readystate不是4时,ProcessRequest会发生什么?没什么,它什么也没有返回,因此未定义。
使用异步调用时需要使用回调函数。这意味着将您的逻辑分解为多个步骤。