return xmlhttp responseText from function como return

Soy nuevo en javascript y php, mi objective es: RETORNO string from xmlhttp responseText a un valor de retorno de la function. Así que puedo usarlo con innerText o innerHTML method. el código html:

<script> function loadXMLDoc(myurl){ var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest();} else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");} xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ xmlhttp.responseText;} } xmlhttp.open("GET",myurl,true); xmlhttp.send(); } </script> 

2 Solutions collect form web for “return xmlhttp responseText from function como return”

Simplemente devuelva la propiedad responseText o asigne su valor a una variable en el cierre.

Devolviendo un valor:

 <script> function loadXMLDoc(myurl) { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { return xmlhttp.responseText; } } xmlhttp.open("GET", myurl, true); xmlhttp.send(); return xmlhttp.onreadystatechange(); } </script> 

Usando un cierre:

 <script> var myValue = "", loadXMLDoc = function (myurl) { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { return xmlhttp.responseText; } } xmlhttp.open("GET", myurl, true); xmlhttp.send(); myValue = xmlhttp.onreadystatechange(); }; </script> 

No puedes.

Ninguno ejecuta el código sincrónico, ni return nada para loadXMLDoc sino a la function anónima que es el controller onreadystatechange .

Su mejor opción es pasar una function de callback.

 function loadXMLDoc(myurl, cb){ var xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest();} else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");} xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ if( typeof cb === 'function' ) cb(xmlhttp.responseText); } } xmlhttp.open("GET",myurl,true); xmlhttp.send(); } 

Y luego llámalo como

 loadXMLDoc('/foobar.php', function(responseText) { // do something with the responseText here }); 
  • SOAP solicita JavaScript en el browser sin dar respuesta
  • Cross-site XMLHttpRequest
  • Trabajador web bloqueado por el hilo principal en Chrome
  • AWS S3 - OPCIONES CORS Preflight arrojando 400 Bad Request durante DELETE con VersionId
  • Javascript & https - Objeto XMLHttpRequest para la ruta relativa GET - ¿el protocolo / puerto es 'henetworkingado'?
  • ¿Cómo convertir Msxml2.XMLHTTP en un website solo para IE, así que también funciona con Firefox?
  • Razones para no usar XMLHttpRequest nativo: ¿por qué es obligatorio $ .ajax?
  • Impedir la networkingirección de Xmlhttprequest
  • cómo pasar el siguiente error en la extensión de Firefox "el server no es compatible con RFC 5746"
  • ¿Por qué debería reutilizar los objects XmlHttpRequest?
  • Error de XmlHttpRequest: Access-Control-Allow-Origin no permite el origen nulo
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.