React Native-我无法通过fetch发送任何FormData

时间:2019-11-29 14:49:46

标签: javascript android image react-native expo

我试图将图像和一些描述从我的React Native应用程序发送到Node Rest Api,但它从未到达api。 这是我的代码:

        <?xml version="1.0"?>
    <Tables>
    <Columns entry="1" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="13" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="12" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="11" status="E">
        <FinEntryLine number="8"/>
    </Columns>
    <Columns entry="10" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="9" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="8" status="E">
        <FinEntryLine number="22"/>
    </Columns>
    <Columns entry="7" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="6" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="5" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="4" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="3" status="E">
        <FinEntryLine number="4000"/>
    </Columns>
    <Columns entry="2" status="E">
        <FinEntryLine number="22"/>
    </Columns>
    <PaymentTerms>
        <PaymentTerm entry="AVRO_TEST"/>
    </PaymentTerms>
    </Tables>

当我发送图像时,提取会引发错误: [TypeError:网络请求失败] 。我的节点服务器未收到任何请求。 我试过仅使用字符串发送FormData,例如:

let formData = new FormData();

formData.append("imageFile", {
    uri: image.uri,
    type: "image/jpeg",
    name: filename,
});
/*
    image.uri is similar to this: "file:///data/user/0/host.exp.exponent/cache/ExperienceData
    /%2540anonymous%252FAppTest_v1-7f36da10-9f18-4a65-97f6-55d9c75f3998/ImagePicker/
    e54acf1b-5391-4db3-87e5-a8765decf3c5.jpg",
    and filename: "e54acf1b-5391-4db3-87e5-a8765decf3c5.jpg"
*/

formData.append("data", {fromApp: "true", userId: "testID123"});

//console.log(formData);
try{
    const response = await fetch(
        serverIp + "/manageFiles/almacenImagenes",{
            method: "POST",
            //headers: {'Content-Type': 'multipart/form-data'}, //doesn't work with or without this
            body: formData
        }
    );
    console.log("RESPONSE:",response);
    const resData = await response.json();
    console.log("resDATA:",resData);

}catch(err){
    console.log("ERROR:", err);
}

已发送,但请求的正文为空。

我也证明了这一点

let formData = new FormData();
formData.append("something","abc123");

它可以正常工作,但是不能发送图像。

我正在使用Expo 版本35.0.0 和React Native 版本0.59.8 ,并且我正在真实的 Android设备中测试该应用< / em>。 请有人告诉我我做错了什么,我一直在寻找答案,但没有找到对我有用的东西。


解决方案: 我已经解决了此问题,即发送以base64编码的图像,然后在我的Node服务器中对其进行解码。

0 个答案:

没有答案