请考虑以下代码段:
fetch(encodeURI(insertObjectUrl), {
method: 'POST',
body: input.files[0]
})
以这种方式编写,请求正文包括:
但是,我想添加其他信息,例如手动提供contentDisposition值(请参阅Object: insert)。
如何修改上面的代码以扩展请求体?
即
body: {
'file': input.files[0];
'contentDisposition: 'myvalue'
}
答案 0 :(得分:0)
来自文档https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch:
fetch(url, {
method: 'POST', // or 'PUT'
body: JSON.stringify(data),
headers: new Headers({
'Content-Type': 'application/json'
})
}).then(res => res.json())
基于此,您只能通过正文传递数据。话虽如此,您可以将contentDisposition(key,value)添加到正文中,如下所示:
jsonData = {
'file': input.files[0];
'contentDisposition: 'myvalue'
}
然后在你的请求中:
fetch(encodeURI(insertObjectUrl), {
method: 'POST',
body: JSON.stringify(jsonData)
})
在服务器上,您需要转换'字符串化'将JSON数据转换为对象(使用JSON.loads或其他函数)。
希望这有帮助