美文网首页
fetch 请求封装

fetch 请求封装

作者: wlianfu | 来源:发表于2018-08-30 08:47 被阅读26次
// 接口请求封装
import 'whatwg-fetch';

let FetchData = (method, url, param, headers=null) => {
  // 打开loading ...

  let newParam = null;
  if (method === 'GET' || method === 'get') newParam = null;
  else newParam = JSON.stringify(param);
  // 请求头信息
  let defaultHeaders = {
    'Content-Type': 'application/json',
    'Accept-Charset': 'utf-8',
  };
  let newHeaders = {...defaultHeaders, ...headers};

  return new Promise((resolve, reject) => {
    fetch(url, {
      method: method,
      body: newParam,
      headers: newHeaders,
    }).then(res => {
        // 关闭loading...

        // 如果返回的状态为200,表示正常
        if(res.status === 200) {
          return res.json();
        } else {
          // 服务器端抛出的错误会在这里捕获
          reject(res.statusText);
        }
      }).then(json => {
        // 如果返回 code=-1,则表示错误
        if(json.code === -1) reject(json.message);
        else resolve(json);
      }).catch(error => {
        // 关闭loading
        Toast.clear();
        // 其它错误会在这里获捕
        reject(error);
      });
  });
};

export default FetchData;

相关文章

网友评论

      本文标题:fetch 请求封装

      本文链接:https://www.haomeiwen.com/subject/fizlwftx.html