原生fetch请求简单封装

原生fetch请求简单封装

1、普通请求封装

<script>
    /*
    query: 是get请求,参数需要拼接到url的之后
    request:是post请求,利用body来进行传参
    */
    export const postData = async (url = '', data: {query?: any, request?: any, methodType?: boolean}) => {
      /* 对于url的处理 */
      let newUrl: string = '';
      if(data?.query) {
        let queryParams: string = '';
        for(let key in data?.query) {
          queryParams += `${key}=${data?.query[key]}&`;
        }
        newUrl = url + `?${queryParams}`;
      }else {
        newUrl = url;
      }
      const response = await fetch(newUrl, {
        method: data?.methodType ? 'GET' : 'POST',
        /* 允许跨域 */
        mode: 'cors',
        headers: {
          'Content-Type': 'application/json',      
        },
        body: JSON.stringify(data?.request),
        /* 携带cookie */
        credentials:'include',
      })
      return response.json();
    }
</script>

2、上传文件请求

<script>
    /* 
    在这里特别需要特别注意的是:不可以配置headers,要是添加了此属性,请求则会出错
    */
   const formData = new FormData();
   formData.append('upload',files?.[0])//第一个参数为属性,第二个参数为所上传文本流信息集合
    fetch(newUrl, {
      method: "POST",
      credentials: 'include',
      mode:'cors',
      body: formData
    })
 </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值