Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax请求返回未定义的结果_Javascript_Ajax_Ajax Request - Fatal编程技术网

Javascript Ajax请求返回未定义的结果

Javascript Ajax请求返回未定义的结果,javascript,ajax,ajax-request,Javascript,Ajax,Ajax Request,我对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)

我对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.... ";
          }
        }
      }
    }
下面是使用
\u 2xm.load()
函数的部分代码:

_2xm.loadData = [_2xm.load(pg, 0), _2xm.now(), _2xm.interval * 60];

但是结果总是
未定义
,为什么?

您从未从
\u 2xm.load
返回值,因此函数隐式计算为
未定义

您只能从绑定到
req.onreadystatechange
的匿名函数回调返回值,该回调在对
\u 2xm.load
的函数调用完成很久之后的某个后期异步触发


也许你应该考虑同步请求。

我喜欢你的<代码> Ajax()>代码>仔细考虑错误情况,并返回< <代码> false <代码> >当<代码> XmlHttpRequest < /代码>对象不能被创建时…然后你的
\u2xm.load
完全忽略了这一点。谢谢,但是如何创建一个函数来发送一个请求,这将是一个“同步请求”@John:无论你在
XMLHttpRequest
中使用什么文档,都要找到其中关于同步请求的部分。