当接口返回的是二进制流的文件时,前端在发起axios请求时需要设置responseType为blob,原因有以下几点
1、数据类型匹配: blob类型能够正确处理二进制数据。如果前端请求不设置responseType,默认情况下,浏览器会尝试解析返回的数据,可能会将其错误地处理为字符串,导致数据损坏或不可用。
2、文件处理: 对于音频、视频、图片等文件,它们都是以二进制形式存在的。前在获取这些文件时,要能够正确地接收和处理这些二进制数据。设置responseType为blob可以确保数据的完整性,使得前端可以对这些二进制数据进行进一步的处理,如将其保存为文件或直接在浏览器中播放。
3、兼容性问题: 如果不设置responseType为blob,在某些浏览器中可能会遇到兼容性问题,因为不同浏览器对返回数据的处理方式可能不同。设置responseType为blob是一种标准化的处理方式,有助于确保代码在不同浏览器中的兼容性。
所以,在处理二进制流文件时,前端请求设置responseType为blob主要是为了确保能够正确地接收和处理后端返回的二进制数据。