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);
      }
    });
  });
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章