第一种 JSONP:
<!--JSONP 封装-->
//封装Jsonp
//缺点:只能使用get 方式 请求
//容易遭xss攻击
function jsonp({url,params,cb}) {
return new Promise((resolve, reject) => {
let script = document.createElement('script');
window[cb] = function(data) {
resolve(data); //返回成功的数据
document.body.removeChild(script); //成功后移除
}
params = { ...params,cb} //wd=b&cb=show
let arrs = [];
for (let key in params) { //把以上的params 参数循环成wd=b&cb=show 的结构
arrs.push(`${key}=${params[key]}`);
}
script.src = `${url}?${arrs.join('&')}`;
document.body.appendChild(script)
})
};
//调用
jsonp({
url: 'https://....',
params: {wd: 'b'},
cb: 'show'
}).then(data => {
console.log(data);
});