React native React Native/Expo:fetch throws";“网络请求失败”;formData内容类型为的401响应出错

React native React Native/Expo:fetch throws";“网络请求失败”;formData内容类型为的401响应出错,react-native,django-rest-framework,fetch,expo,React Native,Django Rest Framework,Fetch,Expo,我正在创建一个与Django Rest框架后端交互的expo应用程序。我使用fetch获取数据并将其发布到服务器,并设置了JWT身份验证。Fetch的工作原理与我希望它向我的服务器发送json数据的工作原理相同 我还试图将一些图像发布到我的服务器上,在我的令牌过期并且服务器返回401之前,这将按预期工作。当这种情况在Android上发生时,fetch而不是正确解析并有响应。status为401,而是抛出一个TypeError:networkrequest failed。在iOS上,它只是挂起 示

我正在创建一个与Django Rest框架后端交互的expo应用程序。我使用fetch获取数据并将其发布到服务器,并设置了JWT身份验证。Fetch的工作原理与我希望它向我的服务器发送json数据的工作原理相同

我还试图将一些图像发布到我的服务器上,在我的令牌过期并且服务器返回401之前,这将按预期工作。当这种情况在Android上发生时,fetch而不是正确解析并有响应。status为401,而是抛出一个
TypeError:networkrequest failed
。在iOS上,它只是挂起

示例代码:

const formData = new FormData()
photos.map((photo, index) =>
  formData.append('images', {
    name: `test${index}.jpg`,
    type: 'image/jpeg',
    uri: photo.uri,
  }),
)
try {
  const response = await fetch(url, {
    body: formData,
    headers: {
      Authorization: `Bearer ${userToken}`,
    },
    method: 'POST'
  })
} catch (e) {
  console.log(e)
}
当服务器返回200或401时,Fetch通常会正确解析,但当我发布映像数据时,200s解析成功,但401s导致Fetch抛出网络请求失败错误。我该如何阻止这种情况发生


Edit:进一步研究表明,python代码行
images=request.FILES.getlist('images',[])
对于避免此错误至关重要。如果我在这行代码之前手动返回,那么我会遇到同样的问题。我的猜测是,这与多部分上传被错误中断有关,但我不确定如何在应用程序中处理此问题。

以下是我的简单代码FormData,带有react native to post request,带有字符串和图像

我用了一个图像选择器

你能换一下头吗

let formdata=new formdata();
...
取('http://192.168.0.1/test',{
方法:“post”,
标题:{
“内容类型”:“多部分/表单数据”,
},
正文:formdata
})。然后(响应=>{
警惕(“成功”)
}).catch(错误=>{
console.log(错误)
})  
});

您可以通过控制台记录响应以查看返回的内容吗?可能会将它们更改为承诺,以便您可以进行控制台。将其记录在
块中。catch
块我没有得到回复。在android fetch上抛出网络请求失败错误。在iOS上,它只是挂起。