今天看啥  ›  专栏  ›  Ar_8be6

JSONP

Ar_8be6  · 简书  ·  · 2019-06-21 08:40

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>




原文地址:访问原文地址
快照地址: 访问文章快照