原生 fetch 请求 fetch和ajax的区别

//比如请求一个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请求,询问服务器是否支持自定义的请求头,如果服务器支持,则在第二次中才会发送真实的请求。

猜你喜欢

转载自blog.csdn.net/zhanghuanhuan1/article/details/90341552