JSONP(只能发送get请求,不支持post、put、delete;不安全xss攻击)
图片发自简书App
jsonp的详细介绍在另一篇文章,这里就以百度的查询接口做简单展示:
<script>
// 封装简单的jsonp
function jsonp(url, params, cb) {
return new Promise((resovle, reject) => {
let script = document.creatElement('script');
window[cb] = function(data) {
resovle(data);
document.body.removeChild(script);
}
params = {...params, cb}; //wd=b&cb=show
let arrs = [];
for(let key in params) {
arrs.push(`${key}=${params[key]}`);
}
script.url = `${url}?${arrs.join('&')}`;
document.body.appendChild(script);
})
}
// jsonp调用方式
jsonp({
url:'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',
params:{wd: 'b'},
cb: show
}).then(data=>{
console.log(data)
})
</script>