vue3(四)-基础入门之 fetch 与 axios

铁佛  金牌会员 | 2024-8-12 17:15:15 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 788|帖子 788|积分 2364

一、fetch

1、axios和fetch的区别
Axios 和 Fetch 都是 JavaScript 中用于发送 HTTP 请求的 API,它们的紧张区别在以下方面:
1.Axios 支持更广泛的浏览器和 Node.js 版本,而 Fetch 只能在较新的浏览器中使用,或需要使用 polyfill 兼容旧版浏览器。
2.Axios 可以拦截请求和响应,可以全局配置默认的请求头、超时时间等,而 Fetch 目前不支持这些功能。
3.Axios 默认返回 JSON 格式的数据,而 Fetch 返回的是 Response 对象,需要自己通过 Response 的方法(如 json()、text() 等)将结果转换成所需的格式。
4.Axios 对于请求错误可以直接抛出异常,方便进行错误处理,而 Fetch 的错误处理比较繁琐,需要手动检查 Response.ok 属性。
5.fetch是原生js自带的,axios是封装的原生的xhr
以上笔墨参考链接
2.fetch 根本使用


  • 第一个 then 返回一个 respond 对象,第二个 then 可以获取返回数据
  • fetch 请求默认是不带 cookie 的,需要设置 fetch(url,(credentails:''include"))
  1. <script>
  2.       //  get请求
  3.       fetch('./lib/test.json')
  4.          .then(res => res.json())
  5.          .then(datas => console.log(datas.students))
  6.       // post 请求
  7.       fetch('./users', {
  8.         method: 'post',
  9.         headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  10.         body: 'age = 22'
  11.       })
  12.         .then(res => res.json())
  13.         .then(datas => console.log(datas))
  14. </script>
复制代码
3.axios 根本使用
  1. //cdn 导入
  2. <script src="https://unpkg.com/axios@1.1.2/dist/axios.min.js"></script>
  3.     <!-- <script src="https://cdn.jsdelivr.net/npm/axios@1.1.2/dist/axios.min.js"></script> -->
  4. <script>
  5.       // axios get请求
  6.       axios.get('./lib/test.json').then(res => {
  7.         console.log(res.data.students)
  8.       })
  9.         // 1.axios post请求
  10.         axios.post('./users', {
  11.           age: 22,
  12.           name: 'zs'
  13.         })
  14.         .then(res => {
  15.           console.log(res.data)
  16.         })
  17.         .catch(error => console.error(error))
  18.       // 2.axios post请求
  19.       axios({
  20.         method: 'post',
  21.         url: './users',
  22.         headers: {
  23.           Accept: 'application/json',
  24.           'Content-Type': 'application/x-www-form-urlencoded'
  25.         },
  26.         timeout: 2000, // 超时时间
  27.         data: {
  28.           age: '19',
  29.           name: 'zs'
  30.         }
  31.       })
  32.         .then(res => {
  33.           console.log(res.data)
  34.         })
  35.         .catch(error => console.error('请求超时'))
  36. </script>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表