Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
can';使用Javascript无法获得ajax的答案_Javascript_Ajax - Fatal编程技术网

can';使用Javascript无法获得ajax的答案

can';使用Javascript无法获得ajax的答案,javascript,ajax,Javascript,Ajax,我有这个: var something = makeRequest(url); function makeRequest(url) { var http_request = false; if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('t

我有这个:

var something = makeRequest(url);

function makeRequest(url) {

  var http_request = false;

  if (window.XMLHttpRequest) {
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
      http_request.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) {
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }

  if (!http_request) {
    console.log('Falla :( No es posible crear una instancia XMLHTTP');
    return false;
  }

  http_request.onreadystatechange = alertContents;
  http_request.open('GET', url, true);
  http_request.send(null);


  function alertContents() {

    if (http_request.readyState == 4) {
      if (http_request.status == 200) {
        //console.log(http_request.responseText); //this show a string result
        //return http_request.responseText; //this not return nothing
        //var something = http_request.responseText; // this return a undefined variable
      } else {
        console.log('Hubo problemas con la petición.');
      }
    }
  }
}
看看“if(http_request.status==200)”下面我证明的三件事,什么都没有

我不知道如何从函数中得到调用的结果。请帮助我,您的alertContents()函数是异步执行的。不能从函数返回值。您可以声明一个全局变量,并将reponseText值赋给它,然后对其进行处理

var result ;
function alertContents() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            result = http_request.responseText ;
            process(result) ; // guaranteed that there will be some response
        }
    }
}

process(result); // Does not guarantee that result will have the 
                 // returned value (response) and may result in failure
看到和