fetch 请求封装

export default class FetchHttp {



 /*
  * 响应体处理
  * text(): 将返回体处理成字符串类型
  * json(): 返回结果和 JSON.parse(responseText)一样
  * blob(): 返回一个Blob,Blob对象是一个不可更改的类文件的二进制数据
  * arrayBuffer()
  * formData()
  *
  * */


  /**
   * 自定义header
   * @returns {Headers}
   */
  static getHeader() {
    let headers = new Headers();
    headers.append("Content-Type", "text/plain");
    headers.append("X-My-Custom-Header", "CustomValue");
    headers.append("CLOUD_HEADER", "CLOUD_HEADER_VALUE");
    headers.set("Content-Type", "application/json");
    return headers;
  }


  /**
   * GET 请求
   * @param url 请求地址
   * @param callback 回调函数
   */
  static getRequest = (url) => {
   return fetch(url, {
      method: "GET",
      //默认为omit,忽略的意思,也就是不带cookie;还有两个参数,same-origin,意思就是同源请求带cookie;include,表示无论跨域还是同源请求都会带cookie
      credentials: "include",
      headers: FetchHttp.getHeader()
    }).then(response =>response.json())
      .catch(err => console.log("Fetch错误:" + err));
  };

  /**
   * POST请求
   * @param url 请求地址
   * @param params 请求参数
   * @param callback 回调函数
   */
  static postRequest = async (url, params) => {
    return await fetch(url, {
      method: "post",
      // 跨域 no-cors, cors, *same-origin 
      mode: "cors",
      body: JSON.stringify(params),
      headers: FetchHttp.getHeader()
    }).then(response => response.json())
      .catch(error => console.error(error));
  };

  /**
   * delete 请求
   * @param url
   * @param params
   * @returns {Promise<any | void>}
   */
  static deleteRequest = async (url, params) => {
    return await fetch(url, {
      method: "delete",
      mode: "cors",
      body: JSON.stringify(params),
      headers: FetchHttp.getHeader()
    }).then(response => response.json())
      .catch(error => console.error(error));
  };

  /**
   * put 请求
   * @param url
   * @param params
   * @returns {Promise<any | void>}
   */
  static putRequest = async (url, params) => {
    return await fetch(url, {
      method: "put",
      mode: "cors",
      body: JSON.stringify(params),
      headers: FetchHttp.getHeader()
    }).then(response => response.json())
      .catch(error => console.error(error));
  };
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值