views:

3473

answers:

2

Hey there. I have a 100% valid Ajax model written in Javascript with a few inputs I use being, Get or Post method, What page to communicate with, What String to send to that page and What element on my own page I might be fiddling with when I receive my response. The problem is that, should I set the request to Asynchronous (Hence Ajax), IE returns the error "The Data Necessary to Complete This Operation is Not Yet Available" in the onreadystatechange event where all I do is check if the readystate is 4 and the status is 200. The error doesn't come up in Firefox or Chrome as I would exepect as the Ajax is Asynchronous.

Heres a snippet from the Post method

xmlhttp.open("POST", commPage, true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        j = xmlhttp.responseText;
        i.innerHTML = j;
    }
}
xmlhttp.send(str);

Edit: I should point out that in IE, I'm using the ActiveX Control -> Msxml2.XMLHTTP or Microsoft.XMLHTTP or whichever returns true first.

+1  A: 

Ho humm

Outside of the onreadystatechange function I had a call for responsetext to check whether it existed yet, but aparently you can't do that if it doesn't exist yet so I just had to restructure some thigs. All is okay but this was the script that caused the problem

ajaxRequest(){
    [...]
}
if(xmlhttp.responseText){
    myFunc();
}
Supernovah
A: 

Not sure if that's your case but I've just been struggling with this error for three hours until I found the problem. The web service class wasn't decorated with ScriptService attribute that allows methods to be called from client script! I wouldn't blame IE because IE is just strict on errors and reports everything what other browsers ignore. IE is good for debugging. Hope this helps. Well... probably not you as your post is now very old.

David