先上代码
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。
改成
我也是醉了,不知道你哪里找的代码