[XMLHttpRequest] - onreadystatechange work in IE nothin in mozilla

J

jhullu

hello,

I'm writing a program using XMLHttpRequest that works in the main case
on IE and mozilla but this code works only on IE ... why ?

probleme is located at mark 'HERE' at the end of code.

{__start_of_code__} ('piece' of code)

....
// OBJ. HTTP
function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}

<!-- OBJETS HTTP -->
var http = getHTTPObject();
var http1 = getHTTPObject();
var http2 = getHTTPObject();

// GESTION EVENT AJAX
function handleHttpResponse(varhttp,context){
switch (varhttp.readyState){
case 4:
switch (context){
case 'search':
...
break ;
case 'addline':
var sbar = document.getElementById("sbar") ;
sbar.innerHTML += varhttp.responseText ;
pbar1.next() ;
break ;
case 'ping':
...
break ;
default:
alert("!! ERROR !!") ;
break ;
}
break ;
case 3:
logger("Status : Transfert de donnees en cours...") ;
break ;
case 2:
logger("Status : Attente de la reponse...") ;
break ;
case 1:
logger("Status : Connexion au serveur...") ;
break ;
case 0:
logger("Status : Connexion non initialise !! ") ;
break ;
}
}


function wake(cnt){

var url_base =
document.getElementById("machinelist").getElementsByTagName("a")[cnt] ;
var url_sbar = new String(url_base) ;

if (url_base) {

url_sbar = url_sbar.replace("index.php","proc.php");
url_sbar = url_sbar.replace("wakeup","ajaxbehav_sbar");

// JS SYNCHRONE !!
http1.open("GET", url_sbar,false) ;


// HERE !!!!!
// this line has no effect ; state never change !!!
http1.onreadystatechange=function(){handleHttpResponse(http1,"addline")}
;
///////////////////////////////////////////////
http1.send(null) ;

http2.open("GET", url_base,false);
http2.send(null) ;
//====================================

}

}
....
{__end__}

how this code return no error in any browser but works only on IE ??

thanks.

regards.
 
M

Martin Honnen

// JS SYNCHRONE !!
http1.open("GET", url_sbar,false) ;


// HERE !!!!!
// this line has no effect ; state never change !!!
http1.onreadystatechange=function(){handleHttpResponse(http1,"addline")}
;
///////////////////////////////////////////////
http1.send(null) ;

If you make a synchronous request then the send() call blocks your
script until the response is there and you don't need an
onreadystatechange event handler but you should simply have your code
check the status, responseText and so on directly here after the send
call. Firefox does not fire onreadystatechange for the synchronous call.
 
J

jhullu

it's OK ;) - that works

thanks...

Martin said:
If you make a synchronous request then the send() call blocks your
script until the response is there and you don't need an
onreadystatechange event handler but you should simply have your code
check the status, responseText and so on directly here after the send
call. Firefox does not fire onreadystatechange for the synchronous call.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top