//比如请求一个json文件
async function(){
//请求
let res = fetch(“data1.json”);
//解析内容
let data = await res.json()
//获取到json 文件
console.log(data)
}
//比如请求一个图片
async function(){
//请求
let res = fetch(“data1.png”);
//解析内容
let data = await res.blob()
//虽然获取到了blob 二进制对象 但是获取不到数据
//需要中转使用新加的URL对象把二进制数据解析成一个url 放到临时的文件,如果是小文件会放到内存,如果是大文件会临时放到硬盘
let url=URL.createObjectURL(data)
console.log(url)
}
这个请求MP4格式也是可以的,只是视频文件太大全加载完再转换成二进制再缓存会等很久,一般会切片输出。
js不是擅长处理二进制数据 需要浏览器帮忙处理。
fetch和ajax 相比
1.都是原生的 不需要引入库
2.比xhr简单,代码量少
fetch一般面试会遇到一个问题
请介绍fetch请求两次的原因?
用fetch的post请求的时候,第一次会发送一个option请求,询问服务器是否支持自定义的请求头,如果服务器支持,则在第二次中才会发送真实的请求。