onReadyStatechange not being called

I am usinng the following code to send an email
The code works fine in IE but in Mozilla the function readyStateChanged doesnt get a call back, therefore the user doesnt get the message box saying that his message is sent..
I placed an alert as a first line in that function, It gets called properly in IE but not in Mozilla... any ideas,
Thanks,
Ahmed

var xhReq;
function createXMLHttpRequest() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
try { return new XMLHttpRequest(); } catch(e) {}
alert("XMLHttpRequest not supported");
return null;
}

function readyStateChanged() {
//alert("RS called with state:"+xhReq.readyState);



if (xhReq.readyState != 4) { return; }

if (xhReq.status != 200) {
alert("Ooops, I was unable to send your message \nIs your internet properly working?");
return;
}
var serverResponse = xhReq.responseText;

alert("Cool! Your message Is gone into my inbox, I will look it as soon as possible");

};

function sendMail(form)
{


xhReq = createXMLHttpRequest();
try {


xhReq.open("GET", "http://www.blabla.com/mailproxy.php?comments="+form.comments.value+"&realname="+form.name.value+"&email="+form.email.value, false);

} catch (e) {
alert("Problem occured sending your message..:");

}


xhReq.onreadystatechange = readyStateChanged;
xhReq.send(null);
}
[1646 byte] By [xs2ahmed] at [2007-11-20 11:02:23]
# 1 Re: onReadyStatechange not being called
It probably isn't working because of the createXMLHttpRequest() function. Try...

function createXMLHttpRequest(){
var xmlHTTP;
try{xmlHTTP = new XMLHttpRequest();}
catch(e){
try{xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){
try{xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){
alert("Your browser does not support AJAX!");
return false;
}
}
}
return xmlHTTP;
}

Your code could use some clean up. Check out my AJAX object (http://www.peejavery.com/coding/ajax/object.php) for more help.
PeejAvery at 2007-11-10 3:58:49 >
# 2 Re: onReadyStatechange not being called
I tried this but same result for Mozilla firefox.
xs2ahmed at 2007-11-10 3:59:55 >
# 3 Re: onReadyStatechange not being called
Use my AJAX object instead. I use it with 5+ browsers.
PeejAvery at 2007-11-10 4:00:54 >
# 4 Re: onReadyStatechange not being called
I've used your script.
I figured out the problem ,
I was using synchonous call to open.
but why should synchronous call not let state change call backs in Mozilla but in IE .!!!
seems funny..
I was using synchronous call to avoid user to press the message send button again and again...
Now i am using asynchrnous call and asking the user to wait through UI.
xs2ahmed at 2007-11-10 4:01:56 >
# 5 Re: onReadyStatechange not being called
Mine is also set to do synchronous...unless you changed it.
PeejAvery at 2007-11-10 4:02:55 >
# 6 Re: onReadyStatechange not being called
Yours is set to asynchronous, and thst how i figured out prolem in my code..

XMLHttpRequest.open(sMethod, sUrl [, bAsync] [, sUser] [, sPassword])
you've passed true, isnt it ;) or did i get code from wrong place ?!

I got code (http://www.peejavery.com/coding/ajax/object.php) from your website, this ciode.
xs2ahmed at 2007-11-10 4:03:54 >
# 7 Re: onReadyStatechange not being called
Ha. I forgot that I changed that on the website. I used to have it set to synchronous.
PeejAvery at 2007-11-10 4:04:58 >
# 8 Re: onReadyStatechange not being called
Thanks alot for the help ;)
xs2ahmed at 2007-11-10 4:05:56 >
# 9 Re: onReadyStatechange not being called
You're most welcome! Good luck. :wave:
PeejAvery at 2007-11-10 4:07:04 >