首页 > 网上找的jsonp请求函数在请求超时的时候报错,该如何修改?

网上找的jsonp请求函数在请求超时的时候报错,该如何修改?

先上代码

var jsonp = function (options) {
    options = options || {};
    if (!options.url) {
        throw new Error('参数不合法');
    }
    if (!options.callback) {
        options.callback = 'callback';
    }

    var callbackName = ('jsonp_' + Math.random()).replace('.', '');
    var oHead = document.getElementsByTagName('head')[0];
    options.data[options.callback] = callbackName;
    var params = this._formatParams(options.data);
    var oS = document.createElement('script');
    oHead.appendChild(oS);

    oS.src = options.url + '?' + params;

    if(options.time) {
        oS.timer = setTimeout(function() {
            oHead.removeChild(oS);
            clearTimeout(oS.timer);
            window[callbackName] = null;
            options.fail && options.fail();
        }, options.time);
    }

    window[callbackName] = function (json) {
        oHead.removeChild(oS);
        clearTimeout(oS.timer);
        window[callbackName] = null;
        options.success && options.success(json);
    };
};

超时就是指在options.time的时间内jsonp请求没有响应,这个函数应该就把callback函数置为null了,报错也是xxx not a function。


window[callbackName] = null;
options.fail && options.fail();

改成

window[callbackName] = function() {
    options.fail && options.fail();
}           

我也是醉了,不知道你哪里找的代码

【热门文章】
【热门文章】