这可能是因为您没有正确处理响应数据。Blob对象的大小可能为0是因为您没有正确解析响应数据或将其转换为正确的数据格式。

您可以尝试使用以下方法来处理响应数据:

axios.get('/public/mock/1683616705171.mp3', { responseType: 'arraybuffer' }) .then(response => { const blob = new Blob([response.data], { type: 'audio/mp3' }) const audioUrl = URL.createObjectURL(blob) // 在页面上显示音频元素 const audio = new Audio(audioUrl) document.body.appendChild(audio) }) .catch(error => { console.log(error) })

在这个例子中,我们使用responseType: 'arraybuffer'指定响应数据的类型为ArrayBuffer。然后,我们使用new Blob([response.data], { type: 'audio/mp3' })将响应数据转换为Blob对象,并指定MIME类型为音频类型。最后,我们使用URL.createObjectURL(blob)将Blob对象转换为URL,并在页面上创建一个音频元素以播放音频。

请注意,如果您使用的是Vue或其他框架,您可能需要在响应中使用response.data来获取响应数据

axiosgetpublicmock1683616705171mp3 responseTypeblob 当我想显示get到的blob时控制台显示blob的size为0

原文地址: https://www.cveoy.top/t/topic/eY01 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录