代码之家  ›  专栏  ›  技术社区  ›  Tim Lewis

React Native-无法通过Axios Post(Android)上载图像

  •  1
  • Tim Lewis  · 技术社区  · 6 年前

    错误:网络错误
    在createError(buildURL.js:33)
    位于XMLHttpRequest.handleError(xhr.js:144)
    在XMLHttpRequest.dispatchEvent(event target.js:172)

    在XMLHttpRequest上,您没有完成响应(XMLHttpRequest.js:392)
    在XMLHttpRequest.js:505
    在RCTDeviceEventEmitter.emit上(EventEmitter.js:190)
    在MessageQueue.\uu调用函数(MessageQueue.js:344)
    在MessageQueue.js:107

    当我在物理设备上而不是在模拟器上进行测试时,所有其他请求都可以工作,连接被配置为本地静态IP地址。

    我已经研究了许多解决方案:

    以下是处理此问题的代码:

    ProfileImage.js (包装纸 react-native-image-picker ):

    async onHandleResizedImageUri(image) {
      var data = new FormData();
      data.append("profile_image", {
        uri: image.path,
        name: image.name,
        type: "image/jpeg"
      });
    
    let imageUploadSuccess = await global.api.callPostImage("/api/profile-image", data);
    

    Api.js

    async callPostImage(url, data) {
      try {
        const settings = {
          baseURL: config.api_host,
          timeout: 1000,
          headers: {
            "content-type": "multipart/form-data"
          }
        };
    
        const response = await this.axios.post(url, data, settings);
          return response;
        } catch (error) {
          console.log(error);
        }
    }
    

    debug release 模式,并适用于多台服务器(本地、暂存和生产)。所有其他网络请求都可以正常工作,但此请求无法完成。有人有什么建议吗?

    设备信息:

    • 三星Galaxy A5(2017年)
    • SMA520W型
    0 回复  |  直到 6 年前