我正在尝试使用fetch将用户选择的图像发布到node js API。但是由于某种原因,与Postman一起使用时,API post方法没有被调用。
在Expo应用程序中运行解决方案时会发生这种情况。为了消除本地主机是罪魁祸首的可能性,已使用ngrok https url来发布请求。
此外,尝试将content-type设置为undefined / null / multipart / form-data,但似乎没有任何帮助实现Post API调用。
const createFormData = (photo, body) =>
{
const data = new FormData();
data.append("photo", {
name: photo.fileName,
type: photo.type,
uri:
Platform.OS === "android" ?
photo.uri
: photo.uri.replace("file://", "")
});
Object.keys(body).forEach(key => {
data.append(key, body[key]);
});
return data;
};
handleUploadPhoto = () => {
fetch("http://ngrok:3000/api/upload",
{
method: "POST",
headers: { "Content-Type" :
"multipart/form-data",
"Accept":
"application/json"},
body:
createFormData(this.state.photo,
{ userId: "123" })
});
};
上面的代码运行时,应用程序不会引发错误,但似乎也不会发出发布请求。