I have a function which does get requests using plain old JS.
function get(url,funct){
    var xmlhttpget = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttpget.onreadystatechange=function(){
        if (xmlhttpget.readyState==4 && xmlhttpget.status==200){
            funct(xmlhttpget.responseText);
        }
    }
    xmlhttpget.open("GET",url,true);
    xmlhttpget.send();
}
I use it like this:
get(url, function(resp){ window.alert(resp); });
When my callback function stopped working I modified my get() function to the following for debugging:
function get(url,funct){
    var xmlhttpget = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttpget.onreadystatechange=function(){
        window.alert("ready state: "+xmlhttpget.readyState+" // status: "+xmlhttpget.status);
        if (xmlhttpget.readyState==4 && xmlhttpget.status==200){
            window.alert("responded...");
            funct(xmlhttpget.responseText);
        }
    }
    window.alert(url);
    xmlhttpget.open("GET",url,true);
    xmlhttpget.send();
}
With this I discovered that, during each readystate change the readystate will progress from 1 to 2 to 4, but the status always stays at 0 so my callback is never called, however, when I copy the alerted url to the browser it works fine.
What's going on? Is my browser caching the page? How can I fix it (set a specific header on the requested page with php??)?
Oh, not sure if this is relevant, but the page that's calling the function is inside of a frame whose parent document includes the same JavaScript file.