wangyuan0108 / fe-qa

知识和笔记,整理分享,以便提升和巩固
https://github.com/wangyuan0108/blog/issues
13 stars 0 forks source link

简单实现下jsonp的跨域封装 #96

Open wangyuan0108 opened 4 years ago

wangyuan0108 commented 4 years ago
jsonp({
  url: 'http://kkl.com',
  params: { wd: 'b' },
  cb: 'show',
}).then(data => {
  console.log(data)
})

function jsonp({ url, params, cb }) {
  return new Promise((resolve, reject) => {
    window[cb] = function (data) {
      resolve(data)
      document.body.removeChild(script)
    }
    params = { ...params, cb }
    let arrs = []
    for (let key in params) {
      arrs.push(`${key}=${params[key]}`)
    }
    let script = document.createElement('script')
    script.src = `${url}?${arrs.join('&')}`
    document.body.appendChild(script)
  })
}