javascript - 网上找的jsonp请求函数在请求超时的时候报错,该如何修改?
阿神
阿神 2017-04-11 12:20:05
[JavaScript讨论组]

先上代码

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。

阿神
阿神

闭关修行中......

全部回复(1)
怪我咯
window[callbackName] = null;
options.fail && options.fail();

改成

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号