zoukankan      html  css  js  c++  java
  • fetch 上传图片 失败 bug解析

    最近在使用Taro开发上传头像功能时,发现使用 Taro.request 上传 formData 数据失败,进行原因发现,Taro.request 底层是通过封装 fetch实现的。

    fetch 作为浏览器自身提供的api,当传入的参数为 formDate 格式时,不可手动设置content-type

    方案一:删除 header 中的 content-type

    if (isFormData) {
      /**
       * fetch bug:当输入为formData格式时,不可手动设置content-type
       */
      delete header["content-type"];
    }

    方案二:通过创建 xhr 对象实现

    export const upLoadImage = (formData): Promise<any> =>
      new Promise(function(resolve, reject) {
        const request = new XMLHttpRequest();
        request.onreadystatechange = () => {
          if (request.readyState === 4 && request.status === 200) {
            const result = JSON.parse(request.responseText);
            resolve(result);
          }
        };
        request.open("POST", API_MINE_SAVE_IMAGE);
        request.setRequestHeader(
          "Authorization",
          `Bearer ${Taro.getStorageSync("token")}`
        );
        request.onerror = err => {
          reject(err);
        }; //发送请求
        request.send(formData);
      });

    .

  • 相关阅读:
    Java_File类
    Java_Math类和Random类
    Java_包装类
    Java_Stringbuilder和StringBuffer
    Java_String
    Java_数组, 懒得整理了 ---------------------> 未完, 待续
    Java_内部类
    Java_三大特征相关
    Java_垃圾回收机制(未掌握)
    重载(overload)和重写(override)的区别?
  • 原文地址:https://www.cnblogs.com/crazycode2/p/14677385.html
Copyright © 2011-2022 走看看