后端返回的样子如下图:
请求里面注意设置 reponseType:'blob'
vue页面的前端代码如下:
Blob介绍
Blob对象表示一个不可变、原始数据的类文件对象
。
Blob表示的不一定是JavaScript原生格式的数据。
File接口基于Blob,继承了blob的功能并将其扩展使其支持用户系统上的文件。
Blob()构造函数返回一个新的Blob对象。blob的内容由参数数组中给出的值的串联组成。
Blob语法
var aBlob=new Blob(array,options)
array是一个由ArrayBuffer, ArrayBufferView ,Blob, DOMString等对象构成的Array,或者其他类似对象的混合体,他将被放入Blob.
options是一个可选的BlobPropertyBag字段,有如下两个属性;
type:默认值“”,他代表了将会被放入到blob中的数组内容的MIME类型;
URL.createObjectURL()
URL.createObjectURL()
静态方法会创建一个 DOMString
,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document
绑定。这个新的URL 对象表示指定的 File
对象或 Blob
对象。
语法
var objectURL=URL.createObjectURL(object);
参数:
object用于创建RUL的File对象、Blob对象或者MidiaSource对象。
返回值:
一个DOMString包含了一个对象URL,改URL可用于指定源object的内容。
MIME类型
媒体类型(通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式。
语法
通用结构
type/subtype
MIME的组成结构非常简单;由类型与子类型两个字符串中间用'/'分隔而组成。不允许空格存在。type 表示可以被分多个子类的独立类别。subtype 表示细分后的每个类型。
MIME类型对大小写不敏感,但是传统写法都是小写。
关于mime的具体可参看
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types