🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
我们知道,jsnop是解决跨域最常用的手段之一,通常我们使用的话,也就是直接npm上搜索一个jsnop的库直接开始使用。比如github上面星星比较多的: https://github.com/webmodules/jsonp 今天来手写一个jsnop实现: 工作中,我们常常会对jsnop库进行promis的封装,like this: ``` import originJsonp from 'jsonp' export default function jsonp(url, data, option) { url += (url.indexOf('?') < 0 ? '?': '&') + param(data) return new Promise((resolve, reject) = >{ originJsonp(url, option, (err, data) = >{ if (!err) { resolve(data) } else { reject(err) } }) }) } export function param(data) { let url = '' for (var k in data) { let value = data[k] !== undefined ? data[k] : ''url += '&' + k + '=' + encodeURIComponent(value) } return url ? url.substring(1) : '' } ``` `