1.封装jsonp

1.为什么使用jsonp

用于前端解决跨域问题

2.包装jsonp

import jsonp from 'jsonp';

// {
//   page: 1,
//   psize: 20
// }
// page=1&psize=20

const parseParam = param => {
  let params = [];

  for (const key in param) {
    params.push([key, encodeURIComponent(param[key])]);
  }
  // [[page, 1], [pszie, 20]]
  return params.map(value => value.join('=')).join('&');
  // [[page, 1], [pszie, 20]]
  // [page=1, psize=20]
  // page=1&psize=20
};

export default (url, data, options) => {
  url += (url.indexOf('?') < 0 ? '?' : '&') + parseParam(data);

  return new Promise((resolve, reject) => {
    jsonp(url, options, (err, data) => {
      if (err) {
        reject(err);
      } else {
        resolve(data);
      }
    });
  });
};

猜你喜欢

转载自blog.csdn.net/Handsome2013/article/details/106394735