Here's how I call this code ... it's my wrapper for Ajax:

var ajax = new XMLHttp();

When I run that, I get the error in Firefox's Error Console that ajax.get is not a function. So I've checked this code ten times and I see nothing wrong. It's almost copied exactly from an example I saw online, and that example works (so says the author, it's from Here's all the pertinent javascript code:

function XMLHttp() {
    if (window.XMLHttpRequest) { // If we have a Gecko browswer?
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE is more difficult ...
        var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp", "MSXML2.XmlHttp.3.0",  "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.5.0"];
        for (var i = avers.length -1; i >= 0; i--) {
            try {
                httpObj = new ActiveXObject(avers[i]);
                return httpObj;
            } catch(e) {}
    // And what if the the browser sucks?
    alert("Your broswer is too old. Consider upgrading!");

XMLHttp.prototype.get = function(url, element) {'GET', url, true);
    this.onreadystatechange = function() {

XMLHttp.prototype.processRequest = function(element) {
    if (this.readyState == 4 && this.status == 200) {
        findElement(element).innerHTML = this.responseText;

function findElement(target) {
    var targetElem = document.getElementById(target);
    if(!targetElem) {
        targetElem = getElementsByClassName(document, "*", target);
    return targetElem;

The XMLHttp() function works fine, as I can use and ajax.onreadystatechange. But I can't use ajax.get ... I've tried calling the XMLHttp() function without "new" before it ...

I'm lost ... what's wrong with that code?

The only problem I can see on the face of it is that you defined the get function as taking two parameters and you're only calling it with one parameter...

That doesn't usually cause a problem (Javascript is quite forgiving), but it's worth checking.

I have tried that actually, I saw that last night. I plugged in the ID of the <div> I wanted to update, using both single, double, and no quotes. To no avail. I still get "ajax.get is not a function".

This article has been dead for over six months. Start a new discussion instead.