lib/Ext/data/proxy/Ajax.js
function(operation, callback, scope) {
        var me = this,
            writer  = me.getWriter(),
            request = me.buildRequest(operation);

        request.setConfig({
            headers: me.getHeaders(),
            timeout: me.getTimeout(),
            method: me.getMethod(request),
            callback: me.createRequestCallback(request, operation, callback, scope),
            scope: me,
            proxy: me,
            useDefaultXhrHeader: me.getUseDefaultXhrHeader()
        });

        if (operation.getWithCredentials() || me.getWithCredentials()) {
            request.setWithCredentials(true);
            request.setUsername(me.getUsername());
            request.setPassword(me.getPassword());
        }

        // We now always have the writer prepare the request
        request = writer.write(request);

        Ext.Ajax.request(request.getCurrentConfig());

        return request;
    }
function(operation, callback, scope) {
        var me = this,
            writer  = me.getWriter(),
            request = me.buildRequest(operation);

        request.setConfig({
            headers: me.getHeaders(),
            timeout: me.getTimeout(),
            method: me.getMethod(request),
            callback: me.createRequestCallback(request, operation, callback, scope),
            scope: me,
            proxy: me,
            useDefaultXhrHeader: me.getUseDefaultXhrHeader()
        });

        if (operation.getWithCredentials() || me.getWithCredentials()) {
            request.setWithCredentials(true);
            request.setUsername(me.getUsername());
            request.setPassword(me.getPassword());
        }

        // We now always have the writer prepare the request
        request = writer.write(request);

        Ext.Ajax.request(request.getCurrentConfig());

        return request;
    }
Performs Ajax request.
@protected
@param {Ext.data.Operation} operation
@param {Function} callback
@param {Object} scope
@return {Object}