请求返回未定义的结果

Ajax Request returns undefined result

本文关键字:结果 未定义 返回 请求      更新时间:2023-09-26

我有一个问题与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,为什么?

您从未返回_2xm.load的值,因此该函数隐式计算为undefined

只能从绑定到req.onreadystatechange的匿名回调函数返回值,该回调函数在稍后的某个阶段异步触发,在对_2xm.load的函数调用完成很久之后。

也许你应该考虑同步请求