我试图从API(docx,odt)获取文件并将其保存到下载(这是前端应用程序)。我尝试了 Postman '保存响应文件',它的工作正常,文件保存为我的预期。
在axios中我应该怎么做才能下载和响应?
响应标头:
content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document,
content-disposition: attachment; filename="output_document.odt"
function getAllData() {
let documentJSON = JSON.stringify(form);
axios.post("http://testapi/document",
{
headers: {
'Content-Type': 'application/json',
'Accept': 'application/vnd.openxmlformats-
officedocument.wordprocessingml.document'
},
data: documentJSON
})
.then((response) => {
console.log(response);
const url = window.URL.createObjectURL(new
Blob([response.data], { type:
'application/vnd.openxmlformats-
officedocument.wordprocessingml.document' }));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'file.odt');
document.body.appendChild(link);
link.click();
})
.catch((error) => console.log(error))
我真的不明白响应是怎么回事,所以我尝试了不同的东西,例如从它创建blob(这显然是不正确的)…
1条答案
按热度按时间0x6upsns1#
所以,我只是使用了axios post请求的错误sintax,它既没有应用请求头和主体,也没有应用响应类型:正确的Sintax是: