dunque, io uso queste 2 semplici funzioni che ho "montato" guardando i tutorial e una reference.
codice:
var http_request = null;
function httpMakeRequest(url)
{
if (http_request != null && http_request.readyState != 0 && http_request.readyState != 4)
http_request.abort();
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) {
alert('Your browser does not support HTTP requests.');
return false;
}
http_request.open('GET', url, true);
http_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
http_request.onreadystatechange = httpGetResponse;
http_request.send(null);
}
function httpGetResponse()
{
if (http_request.readyState == 4) {
if (http_request.status == 200) {
return http_request.responseText;
} else {
alert('Unable to retrive HTTP data.\n\n(#' + http_request.status + ') ' + http_request.statusText);
}
}
}
la richiesta nello specifico è ad uno script php che mi restituisce un host con un timeout settato in caso di fallimento, ma un po' di tempo è pur sempre richiesto.
così se chiamo:
codice:
httpMakeRequest('host.php?ip=63.33.131.123');
alert(httpGetResponse());
mi restituisce undefined. come faccio a dire alla funzione js httpGetResponse() di aspettare a fare il return finché è undefined?