Fetch 也是前后端通信的一种方式。是 Ajax 的一种替代方案。
Fetch 的优缺点:
Fetch 的优点:
- 原生就有 fetch 对象,使用简单。
- 基于 Promise。
Fetch 的缺点:
- 兼容性没有 Ajax 好。
- 原生没有提供 abort、timeout等机制。
fetch() 函数的使用:
 
fetch() 函数是浏览器原生提供的一个全局函数,可以直接调用。接收两个参数,第一个参数是要获取的资源的地址,第二个参数是其他初始化的参数(例如:method 表示请求方法;headers 表示请求头信息;body 表示请求体信息,默认是以 multipart/form-data 形式发送数据)。返回值是一个 Promise 对象。
// GET 请求
fetch('http://123.207.32.32:8000/home/multidata')
	.then(res => {
		// res.ok 如果为 true,就表示可以读取数据了,不用再去判断 HTTP 状态码了
		if (res.ok) {
			// res.body 是一个可读流,无法直接读取到。可以通过 res.json() 或者 res.text() 来获取 JSON 格式或者普通文本格式的数据,返回的都是一个 Promise 对象
			// res.body 只能读取一次,读取过一次之后 res.bodyUsed 就会变为 true,无法再读取到
			return res.json()
		}
	})
	.then(res => {
		// 真正要获取的数据
		console.log(res)
	})
	.catch(err => {
		console.log(err)
	})

// POST 请求发送 JSON 形式的数据
fetch(
	'http://123.207.32.32:1888/02_param/postjson',
	{
		method: 'POST',
		headers: {
			'Content-type': 'application/json',
		},
		body: JSON.stringify({name: 'Lee', age: 18})
	}
)
	.then(res => {
		if (res.ok) {
			return res.json()
		}
	})
	.then(res => {
		// 真正要获取的数据
		console.log(res)
	})
	.catch(err => {
		console.log(err)
	})










![Vue中 引入使用 patch-package 为依赖打补丁 (以修改 vue-pdf 打包后 [hash].worker.js 路径问题为例)](https://img-blog.csdnimg.cn/5e1eeb3ab60b4e89942d3d47a72c1d71.png#pic_center)







