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

时间:2018-09-27 15:27:56

标签: javascript android react-native axios

我无法从Android上的React Native应用程序上传图像(iOS可以正常工作)。尝试上传时,出现以下错误:

  

错误:网络错误
      在createError(buildURL.js:33)
      在XMLHttpRequest.handleError(xhr.js:144)
      在XMLHttpRequest.dispatchEvent(event-target.js:172)
      在XMLHttpRequest.setReadyState(XMLHttpRequest.js:576)
      在XMLHttpRequest .__ didCompleteResponse(XMLHttpRequest.js:392)
      在XMLHttpRequest.js:505
      在RCTDeviceEventEmitter.emit(EventEmitter.js:190)
      在MessageQueue .__ callFunction(MessageQueue.js:344)上
      在MessageQueue.js:107
      在MessageQueue .__ guard(MessageQueue.js:291)

所有其他请求均有效,连接已配置为我的本地静态IP地址,因为我正在物理设备上而不是在模拟器中进行测试。

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

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

ProfileImage.jsreact-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);
    }
}

此外,在debugrelease模式下,对于多个服务器(本地服务器,暂存服务器和生产服务器),都会发生此问题。所有其他网络请求都可以正常工作,但是这一请求将无法完成。有人有什么建议吗?

设备信息:

  • 三星Galaxy A5(2017)
  • SMA520W型
  • 版本8.0.0

0 个答案:

没有答案