URL地址拼接方法封装

在前端开发中,我们经常会需要去请求不同页面的数据,这个时候我们就需要拼接我们的需求参数,并将我们的请求发送给后端处理,类似这样www.baidu.com?singer=王菲,这样我们就可以向后端去请求王菲的相关数据,这里把这个事情封装成了一个方法,方便调用,自己在项目中也可以使用这种方法:

// 我们通常是用jsonp来请求数据,所以这里方法名定义为jsonp
// url: 我们目标地址,如www.baidu.com
// data: 我们的附带参数,以一个对象保存,如 data={'singer':王菲,'type':人气歌手}
// option: 回调函数,根据自己需要来写
function jsonp(url, data, option) {
// 拼接url
  url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
// 新建一个promise对象,用来做异步处理
  return new Promise((resolve, reject) => {
    originJsonp(url, option, (err, data) => {
      if (!err) {
        resolve(data)
      } else {
        reject(err)
      }
    })
  })
}

function param(data) {
  let url = ''
  // 遍历data对象,取出需要的参数
  for (var k in data) {
  // 如果当前value为undefined ,则返回空字符串
    let value = data[k] !== undefined ? data[k] : ''
    // 得到参数,并且拼接参数,为下一步拼接到url后面做准备
    url += '&' + k + '=' + encodeURIComponent(value)
  }
  // 如果url存在,则去除首字符并返回,因为主函数已经包含了'&',否则返回空串
  return url ? url.substring(1) : ''
}

如果有同学不理解promise的用法,可以参考我的另一篇文章:=>Promise对象;

猜你喜欢

转载自blog.csdn.net/qq_34803821/article/details/85056835
今日推荐