Error:uncaught exception, not enough arguments
<p>i have this code,how can i solve this error.</p>

<pre><code>Ext.lib.Ajax = function() {
    var activeX = ['MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'],

        CONTENTTYPE = 'Content-Type';


    // private


    function setHeader(o) {
        var conn = o.conn,
            prop;

        function setTheHeaders(conn, headers) {
            for (prop in headers) {
                if (headers.hasOwnProperty(prop)) {
                    conn.setRequestHeader(prop, headers[prop]);
                }
            }
        }

        if (pub.defaultHeaders) {
            setTheHeaders(conn, pub.defaultHeaders);
        }

        if (pub.headers) {
            setTheHeaders(conn, pub.headers);
            pub.headers = null;
        }
    }

    // private


    function createExceptionObject(tId, callbackArg, isAbort, isTimeout) {
        return {
            tId: tId,
            status: isAbort ? -1 : 0,
            statusText: isAbort ? 'transaction aborted' : 'communication failure',
            isAbort: true,
            isTimeout: true,
            argument: callbackArg
        };
    }

    // private 


    function initHeader(label, value) {
        (pub.headers = pub.headers || {})[label] = value;
    }

    // private


    function createResponseObject(o, callbackArg) {
        var headerObj = {},
            headerStr, conn = o.conn,
            t, s;

        try {
            headerStr = o.conn.getAllResponseHeaders();
            Ext.each(headerStr.replace(/\r\n/g, '\n').split('\n'), function(v) {
                t = v.indexOf(':');
                if (t &gt;= 0) {
                    s = v.substr(0, t).toLowerCase();
                    if (v.charAt(t + 1) == ' ') {
                        ++t;
                    }
                    headerObj[s] = v.substr(t + 1);
                }
            });
        } catch (e) {}

        return {
            tId: o.tId,
            status: conn.status,
            statusText: conn.statusText,
            getResponseHeader: function(header) {
                return headerObj[header.toLowerCase()];
            },
            getAllResponseHeaders: function() {
                return headerStr
            },
            responseText: conn.responseText,
            responseXML: conn.responseXML,
            argument: callbackArg
        };
    }

    // private


    function releaseObject(o) {
        o.conn = null;
        o = null;
    }

    // private


    function handleTransactionResponse(o, callback, isAbort, isTimeout) {
        if (!callback) {
            releaseObject(o);
            return;
        }

        var httpStatus, responseObject;

        try {
            if (o.conn.status !== undefined &amp;&amp; o.conn.status != 0) {
                httpStatus = o.conn.status;
            }
            else {
                httpStatus = 13030;
            }
        }
        catch (e) {
            httpStatus = 13030;
        }

        if ((httpStatus &gt;= 200 &amp;&amp; httpStatus &lt; 300) || (Ext.isIE &amp;&amp; httpStatus == 1223)) {
            responseObject = createResponseObject(o, callback.argument);
            if (callback.success) {
                if (!callback.scope) {
                    callback.success(responseObject);
                }
                else {
                    callback.success.apply(callback.scope, [responseObject]);
                }
            }
        }
        else {
            switch (httpStatus) {
            case 12002:
            case 12029:
            case 12030:
            case 12031:
            case 12152:
            case 13030:
                responseObject = createExceptionObject(o.tId, callback.argument, (isAbort ? isAbort : false), isTimeout);
                if (callback.failure) {
                    if (!callback.scope) {
                        callback.failure(responseObject);
                    }
                    else {
                        callback.failure.apply(callback.scope, [responseObject]);
                    }
                }
                break;
            default:
                responseObject = createResponseObject(o, callback.argument);
                if (callback.failure) {
                    if (!callback.scope) {
                        callback.failure(responseObject);
                    }
                    else {
                        callback.failure.apply(callback.scope, [responseObject]);
                    }
                }
            }
        }

        releaseObject(o);
        responseObject = null;
    }

    // private


    function handleReadyState(o, callback) {
        callback = callback || {};
        var conn = o.conn,
            tId = o.tId,
            poll = pub.poll,
            cbTimeout = callback.timeout || null;

        if (cbTimeout) {
            pub.timeout[tId] = setTimeout(function() {
                pub.abort(o, callback, true);
            }, cbTimeout);
        }

        poll[tId] = setInterval(

        function() {
            if (conn &amp;&amp; conn.readyState == 4) {
                clearInterval(poll[tId]);
                poll[tId] = null;

                if (cbTimeout) {
                    clearTimeout(pub.timeout[tId]);
                    pub.timeout[tId] = null;
                }

                handleTransactionResponse(o, callback);
            }
        }, pub.pollInterval);
    }

    // private


    function asyncRequest(method, uri, callback, postData) {
        var o = getConnectionObject() || null;

        if (o) {
            o.conn.open(method, uri, true);

            if (pub.useDefaultXhrHeader) {
                initHeader('X-Requested-With', pub.defaultXhrHeader);
            }

            if (postData &amp;&amp; pub.useDefaultHeader &amp;&amp; (!pub.headers || !pub.headers[CONTENTTYPE])) {
                initHeader(CONTENTTYPE, pub.defaultPostHeader);
            }

            if (pub.defaultHeaders || pub.headers) {
                setHeader(o);
            }

            handleReadyState(o, callback);
            o.conn.send(postData || null);
        }
        return o;
    }

    // private


    function getConnectionObject() {
        var o;

        try {
            if (o = createXhrObject(pub.transactionId)) {
                pub.transactionId++;
            }
        } catch (e) {} finally {
            return o;
        }
    }
</code></pre>
