lib/Ext/data/proxy/JsonP.js
function(operation, callback, scope) {
        // <debug>
        var action = operation.getAction();
        if (action !== 'read') {
            Ext.Logger.error('JsonP proxies can only be used to read data.');
        }
        // </debug>

        //generate the unique IDs for this request
        var me      = this,
            request = me.buildRequest(operation),
            params  = request.getParams();

        // apply JsonP proxy-specific attributes to the Request
        request.setConfig({
            callbackKey: me.getCallbackKey(),
            timeout: me.getTimeout(),
            scope: me,
            callback: me.createRequestCallback(request, operation, callback, scope)
        });

        // Prevent doubling up because the params are already added to the url in buildUrl
        if (me.getAutoAppendParams()) {
            request.setParams({});
        }

        request.setJsonP(Ext.data.JsonP.request(request.getCurrentConfig()));

        // Set the params back once we have made the request though
        request.setParams(params);

        operation.setStarted();

        me.lastRequest = request;

        return request;
    }
function(operation, callback, scope) {
        // <debug>
        var action = operation.getAction();
        if (action !== 'read') {
            Ext.Logger.error('JsonP proxies can only be used to read data.');
        }
        // </debug>

        //generate the unique IDs for this request
        var me      = this,
            request = me.buildRequest(operation),
            params  = request.getParams();

        // apply JsonP proxy-specific attributes to the Request
        request.setConfig({
            callbackKey: me.getCallbackKey(),
            timeout: me.getTimeout(),
            scope: me,
            callback: me.createRequestCallback(request, operation, callback, scope)
        });

        // Prevent doubling up because the params are already added to the url in buildUrl
        if (me.getAutoAppendParams()) {
            request.setParams({});
        }

        request.setJsonP(Ext.data.JsonP.request(request.getCurrentConfig()));

        // Set the params back once we have made the request though
        request.setParams(params);

        operation.setStarted();

        me.lastRequest = request;

        return request;
    }
Performs the read request to the remote domain. JsonP proxy does not actually create an Ajax request,
instead we write out a `<script>` tag based on the configuration of the internal Ext.data.Request object
@param {Ext.data.Operation} operation The {@link Ext.data.Operation Operation} object to execute.
@param {Function} callback A callback function to execute when the Operation has been completed.
@param {Object} scope The scope to execute the callback in.
@return {Object}
@protected