Geo*_*nda 1 android http react-native
我有一个本地应用程序需要将视频/图像发送到我的服务器.我已经知道正常帖子可以正常工作但是当我尝试发送一个formData对象时,它似乎永远不会离开手机.这是我的代码.
// method = 'POST';
// body = new formData();
// body contains text data and image/video file
const post = (url, body, token, method) => {
let xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.setRequestHeader('Authorization', 'Bearer' + token);
xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=---------------------------7692764ac82');
xhr.send(body);
console.log(xhr);
return xhr.response;
}
Run Code Online (Sandbox Code Playgroud)
body是包含图像/视频的formData对象.在xhr在控制台日志中打印的对象中,_response包含"二进制FormData部分需要内容类型标题".但似乎我把它正确设置好了吗?
请帮助,还有其他类似的问题,但我已经没有想法了.我也试过使用fetch但没有成功.
该错误消息不是关于content-type标题的请求(您已设置),它是关于Content-Type头的部分(你没有显示,所以我们必须假设它丢失了).
当您添加部件时FormData
,不要忘记包括type
.图像示例:
const body = new FormData();
// ...
body.append('image', {
uri: 'file:///...',
type: 'image/jpeg', // <- Did you miss that one?
name: 'someName',
});
Run Code Online (Sandbox Code Playgroud)
有了type
正确设定,阵营本地运行时应该加上一个content-type
头的一部分.这是在v0.46.0的FormData.js
第79行(其中value
是您的type
财产的价值)中完成的:
if (typeof value.type === 'string') {
headers['content-type'] = value.type;
}
Run Code Online (Sandbox Code Playgroud)
因此,当type
缺少时,content-type
该部分的标题丢失,然后在Android上您最终到达此处,您可以在其中查看错误消息的来源.
在GitHub问题中讨论了这个确切的错误和根本原因.
归档时间: |
|
查看次数: |
2904 次 |
最近记录: |