ajax chiamata sincrona funziona con ie e non con firefox

  • Creatore Discussione Creatore Discussione mo_70
  • Data di inizio Data di inizio

mo_70

Nuovo Utente
15 Apr 2010
7
0
0
Ciao, ho scritto una funzione js che recupera un valore tramite ajax e lo inserisce in un campo 'text'. La richiesta deve essere sincrona perchè il valore recuperato è necessario per proseguire lo script. Funziona bene con ie 8, ma con firefox il valore di ritorno è vuoto. Vi posto il codice.
//chiamata ajax
if (window.XMLHttpRequest)
{
request=new XMLHttpRequest();
}else{
request=new ActiveXObject("Microsoft.XMLHTTP");
}

if (request)
{
request.open("POST",my_url,false);
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

request.onreadystatechange=

function()
{
if (request.readyState == 4)
{

if(request.status == 200 || request.status == 404)
{

document.getElementById('txt_query').value=request.responseText;

}

}
}
request.send(message);


}else{
alert("Il tuo browser non è abilitato per l'utilizzo di ajax");
return false;
}
 
Preferisco non utilizzare i framework, il codice scritto 'a mano' è più comprensibile. Ho cercato sul web ma non ho trovato soluzioni in merito. Hai qualche idea? Grazie.
 
ajax chiamata sincrona funziona con ie e non con firefox (Risolto)

Ho risolto, bastava eliminare la funzione che verifica onReadyStateChange, probabilmente nelle chiamate sincrone non è necessaria. In ogni caso posto il codice funzionante e crossbrowser se dovesse servire a qualcuno. Grazie. Ciao

var variabile='';
var my_url='';//file da richiamare
var message='';//parametri da inviare al file da richiamare

//richiesta ajax
if (window.XMLHttpRequest)
{
request=new XMLHttpRequest();
}else{
request=new ActiveXObject("Microsoft.XMLHTTP");
}

if (request)
{
request.open("POST",my_url,false);
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
request.send(message);

//posso modificare il testo di un campo del form
document.getElementById('nome_campo').value=request.responseText;

//oppure archiviare il valore dentro una variabile
variabile=request.responseText;

}else{
alert("Il tuo browser non è abilitato per l'utilizzo di ajax");
return false;
}
 

Discussioni simili