1.概念

我的理解就是一个原生的js的api,并不是基于XMLHttpRequest对象所封装的
(ajax就是基于XHR所封装的请求)(详见文档:XHR

fetch是一种HTTP数据请求的方式,是XMLHttpRequest的一种替代方案。fetch不是ajax的进一步封装,而是原生js。Fetch函数就是原生js,没有使用XMLHttpRequest对象。

image.png
image.png
所以我的理解下,fetch可以用来检测网络请求是否正常,而且自由度很高,可以自由封装请求接口调用,

2.使用

首先fetch是一个异步的操作 ,其次就是fetch默认就是get请求

get方法

  1. // 默认get方法
  2. const response = fetch("url")
  3. .then(res => {
  4. res.ok && res.json() //实际上这里就是个判断
  5. throw new Error("fetch fail!")
  6. }) //这里的json方法是内置的把XX格式转换成json对象
  7. .then((data) => {
  8. console.log(data) //这个里面有两层promise对象所以直接调用就好了
  9. })

post方法

  1. // post方法
  2. const response2 = fetch("url", {
  3. method: 'POST',
  4. body: JSON.stringify({
  5. name: name //这里的body其实是传的值,此处name只是一个变量
  6. //这里其实需要把数据格式转换一下再传出去请求数据--转换成http请求能看懂得数据
  7. }),
  8. headers: {
  9. 'Content-Type':'application/json' //在头部中告诉http请求时传输得数据是什么格式的
  10. }
  11. }).then(res => {
  12. res.ok && console.log(res.json())
  13. throw new Error("fetch fail!")
  14. }).then((data) => {
  15. conselo.log(data)
  16. })