function formateData(data) {
let arr = [];
for (let key in data) {
arr.push(encodeURIComponent(key) + '=' + data[key])
}
return arr.join('&');
}
function jsonp(params) {
params = params || {};
params.data = params.data || {};
var callbackName = params.jsonp;
var head = document.querySelector('head');
var script = document.createElement('script');
params.data['callback'] = callbackName;
var data = formateData(params.data)
let url = `${params.url}?${data}`
params.timer = params.timer || 3000;
var timer = null
window[callbackName] = function(jsonData){
head.removeChild(script)
clearTimeout(timer)
window[callbackName] = null;
params.success && params.success(jsonData)
}
if(params.timer){
timer = setTimeout(() => {
head.removeChild(script)
window[callbackName] = null;
params.error && params.error()
},params.timer)
}
head.appendChild(script)
}
console