我遇到Ajax请求(基本功能)的问题
这是ajax功能
function ajax(){
var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]
if (window.ActiveXObject){
for (var i=0; i<activexmodes.length; i++){
try{
return new ActiveXObject(activexmodes[i])
}
catch(e){
}
}
}
else if (window.XMLHttpRequest)
return new XMLHttpRequest()
else
return false
}
这是另一项功能
_2xm.load = function (p, type)
{
p = p.replace("frame_", "");
loading(type);
var req=new ajax();
var __page =encodeURIComponent(p);
req.open("GET", "page.php?page="+__page, true);
req.send(null);
req.onreadystatechange=function(){
if (req.readyState==4)
{
if (req.status==200 || window.location.href.indexOf("http")==-1)
{
loading(2);
return req.responseText;
}
else
{
loading(2);
return "An error was occured.... ";
}
}
}
}
这是使用_2xm.load()
函数的代码的一部分:
_2xm.loadData = [_2xm.load(pg, 0), _2xm.now(), _2xm.interval * 60];
但结果总是Undefined
,为什么?
答案 0 :(得分:0)
您从未从_2xm.load
返回值,因此该函数会隐式计算为undefined
。
只能从绑定到req.onreadystatechange
的匿名函数回调中返回值,该函数将在稍后的某个阶段触发,在您对_2xm.load
的函数调用结束很久之后异步激活。
也许您应该考虑同步请求。