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 }); 
  • ¿Se puede utilizar la API 'autocomplete' de Google Maps / Places a través de AJAX?
  • XMLHttpRequest 206 Parcial Content
  • XmlHttpRequest.responseText durante la carga (readyState == 3) en Chrome
  • ¿El object XMLHttpRequest se cierra después de recibir la respuesta?
  • ¿Qué browseres tienen problemas para almacenar en caching las respuestas XMLHTTPRequest?
  • XMLHttpRequest Nivel 2: determinar si finalizó la carga
  • Solicitud de descarga de files con XMLHttpRequest
  • Chrome ignora los encabezados de respuesta de Set-Cookie de XMLHttpRequest dentro de la extensión
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.