在 Vue 3 中,如果你收到一个本应该是 blob
但实际上是 json
格式的响应,并且你错误地尝试使用 FileReader
来读取它,这实际上是不必要的,因为 json
数据已经是文本格式,可以直接被 JavaScript 处理。
但是,如果你确实收到的是二进制数据(可能是以 arraybuffer
或 blob
形式),并且这些数据实际上包含了 json
格式的文本,那么你需要使用 FileReader
来读取这些数据,并将其转换为文本,然后再解析为 JSON 对象。
下面是一个处理这种情况的示例:
axios({
method: 'get',
url: '你的API地址',
responseType: 'blob' // 假设后端错误地返回了blob,但内容实际上是json格式的文本
})
.then(response => {
// 创建一个FileReader对象来读取blob数据
const reader = new FileReader();
reader.readAsText(response.data, 'utf-8'); // 读取blob数据为文本
reader.onload = function (e) {
try {
// 将读取到的文本解析为JSON对象
const jsonData = JSON.parse(e.target.result);
// 在这里使用解析后的JSON数据
console.log('jsonData:', jsonData);
// 根据返回的json数据做不同的