代码之家  ›  专栏  ›  技术社区  ›  Hunter Dolan

将本机FormData文件请求作为[对象对象]发送到服务器

  •  2
  • Hunter Dolan  · 技术社区  · 8 年前

    我目前正在使用React Native 0.48和React Native image crop picker 0.16。

    以下是我正在做的工作的代码片段:

    var image = await ImagePicker.openPicker({
      width: 500,
      height: 500,
      cropping: true,
      includeBase64: true,
    });
    
    var media = {
      uri: image.path,
      type: 'image/jpeg',
      name: 'file.jpg',
    };
    
    var formData = new FormData();
    formData.append("file", media);
    
    fetch("https://requestb.in/1e6lgdo1", {
      method: 'post',
      headers: {
        'Content-Type': 'multipart/form-data',
      },
      body: formData
    }).then(function(r){
      console.log("Success", r);
    }).catch(function(e){
      console.log("Error", e);
    }).done();
    

    根据您将请求发送到的位置,这会导致文件内容变为“[对象对象]”或请求出错。

    我无法确定这是我自己的代码还是react native本身的问题。如有任何帮助,我们将不胜感激。

    使现代化

    https://github.com/jpillora/uploader 对于我的测试服务器。(注意:Go在字符串化对象时从不使用符号[object object],因此我认为问题不在于服务器。此外,我在将文件上载到S3时也看到了这一点。)

    ------WebKitFormBoundaryzt2jTR8Oh7dXB56z
    Content-Disposition: form-data; name="file"
    
    [object Object]
    ------WebKitFormBoundaryzt2jTR8Oh7dXB56z--
    
    1 回复  |  直到 8 年前
        1
  •  9
  •   Hunter Dolan    8 年前

    这个问题与另一个包React本机调试器劫持获取请求有关,以便允许在调试器中进行检查。

    https://github.com/jhen0409/react-native-debugger/issues/101

    然而,通过返回Google Chrome调试器,我成功地绕过了它。