The source code

    /**
     * @ignore
     *  jsonp transport based on script transport
     * @author yiminghe@gmail.com
     */
    KISSY.add('ajax/jsonp', function (S, io) {
        var win = S.Env.host;
        io.setupConfig({
            jsonp: 'callback',
            jsonpCallback: function () {
                // 不使用 now() ，极端情况下可能重复
                return S.guid('jsonp');
            }
        });

        io.on('start', function (e) {
            var io = e.io,
                c = io.config,
                dataType = c.dataType;
            if (dataType[0] == 'jsonp') {
                var response,
                    cJsonpCallback = c.jsonpCallback,
                    converters,
                    jsonpCallback = S.isFunction(cJsonpCallback) ?
                        cJsonpCallback() :
                        cJsonpCallback,
                    previous = win[ jsonpCallback ];

                c.uri.query.set(c.jsonp, jsonpCallback);

                // build temporary JSONP function
                win[jsonpCallback] = function (r) {
                    // 使用数组，区别：故意调用了 jsonpCallback(undefined) 与 根本没有调用
                    // jsonp 返回了数组
                    if (arguments.length > 1) {
                        r = S.makeArray(arguments);
                    }
                    // 先存在内存里, onload 后再读出来处理
                    response = [r];
                };

                // cleanup whether success or failure
                io.fin(function () {
                    win[ jsonpCallback ] = previous;
                    if (previous === undefined) {
                        try {
                            delete win[ jsonpCallback ];
                        } catch (e) {
                            //S.log('delete window variable error : ');
                            //S.log(e);
                        }
                    } else if (response) {
                        // after io success handler called
                        // then call original existed jsonpcallback
                        previous(response[0]);
                    }
                });

                converters = io.converters = io.converters || {};
                converters.script = converters.script || {};

                // script -> jsonp ,jsonp need to see json not as script
                // if ie onload a 404/500 file or all browsers onload an invalid script
                // 404/invalid will be caught here
                // because response is undefined( jsonp callback is never called)
                // error throwed will be caught in conversion step
                // and KISSY will notify user by error callback
                converters.script.json = function () {
                    if (!response) {
                        S.error(' not call jsonpCallback: ' + jsonpCallback)
                    }
                    return response[0];
                };

                dataType.length = 2;
                // 利用 script transport 发送 script 请求
                dataType[0] = 'script';
                dataType[1] = 'json';
            }
        });

        return io;
    }, {
        requires: ['./base']
    });