gpt4 book ai didi

vue.js - 当使用 Vuejs 响应类型为 blob 时,如何处理错误?

转载 作者:行者123 更新时间:2023-12-03 08:47:06 24 4
gpt4 key购买 nike

我的问题类似于 this没有答案。我尝试搜索许多其他地方,但仍然没有答案。

我正在尝试使用 VueJs 中的 Axios 将文件作为 blob 下载:

return new Promise((resolve, reject) => {
Axios.get(`${fileDownloadUrl}`,
{ responseType: 'blob' } // Blob doesn't handle errors
).then(response => {
let byteData = response.data
var blob = new Blob([byteData], {type: response.headers['content-type']})
let fileName = _.split(response.headers['content-disposition'], '=')
FileSaver.saveAs(blob, fileName[1])
resolve(fileName[1])
},
error => {
console.log(error.response.data) // returns Blob - error message from service is not handled
reject(error.response.data)
}
)

我从上面的代码中删除了 { responseType: 'blob' } 并再次尝试,我现在收到错误消息,但下载的文件没有任何内容,它是空白数据。

如何下​​载文件并处理服务返回的错误响应?

最佳答案

使用vue-resource解决了这个问题。虽然它将在未来的版本中退役,但我找不到更好的方法来做到这一点,因为 Axios 无法处理它。

代码如下:

ma​​in.js

import VueResource from 'vue-resource'
Vue.use(VueResource)

service.js

return new Promise((resolve, reject) => {
VueResource.http.get(`${fileDownloadUrl}`,
{ responseType: 'blob' }
).then(response => {
methods.downloadFile(response, cid)
resolve(cid)
}, error => {
reject(error)
})
})

希望这有帮助。

关于vue.js - 当使用 Vuejs 响应类型为 blob 时,如何处理错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60974877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com