细谈Axios中那些不为人知的秘密!一文读懂Axios(一)

简介: 细谈Axios中那些不为人知的秘密!一文读懂Axios

Axios介绍

1、Axios是什么?

Axios是一个基于promise的HTTP库,类似于jQuery的ajax,用于http请求。可以应用于浏览器端和node.js,既可以用于客户端,也可以用于node.js编写的服务端。

2、Axios特性

(1)支持Promise API

(2)拦截请求与响应,比如:在请求前添加授权和响应前做一些事情。

(3)转换请求数据和响应数据,比如:进行请求加密或者响应数据加密。

(4)取消请求

(5)自动转换JSON数据

(6)客户端支持防御XSRF

3、浏览器支持情况

Firefox、Chrome、Safari、Opera、Edge、IE8+。

Axios基本使用

yarn add axios


import axios from "axios"
axios.get("/data.json").then(res=>{
    console.log(res)
}).catch(err=>{
    console.log(err)
})

打开控制台瞅两眼,已经有数据了

20210818200708225.png

Axios常用请求方法

方法列举:get, post, put, patch, delete等。

  • get:一般用户获取数据
  • post:一般用于表单提交与文件上传
  • patch:更新数据(只将修改的数据推送到后端)
  • put:更新数据(所有数据推送到服务端)
  • delete:删除数据

备注:post一般用于新建数据,put一般用于更新数据,patch一般用于数据量较大的时候的数据更新。

1、get方法

方式一

axios
      .get("/data.json", { 
        params: { 
          id: 12
        }
      })
      .then(res => { 
        console.log(res);
      })
      .catch(err => { 
        console.log(err);
      });

方式二

axios({ 
      method: "get",
      url: "/data.json",
      params:{ 
          id:12
      }
    }).then(res => { 
      console.log(res);
    });

带有参数后get请求实际是http://xxxxx/data.json?id=12,写了这么多结果就是url加了参数

浏览器控制台相关信息介绍:

  1. Request URL:请求URL
  2. Request Method:请求方式

2、post方法

post请求常用的数据请求格式有两种:

1.form-data(常用于表单提交(图片上传、文件上传))

let data = {
  id: 12
};
let formData = new FormData();
for(let key in data){ 
  formData.append(key,data[key])
}
console.log(formData)
axios.post('/data.json',formData).then(res=>{ 
  console.log(res,'formData')
})

注意:请求地址Request URL: http://xxxxxxx/data.json,


请求头中Content-Type: multipart/form-data; boundary=——WebKitFormBoundarydgohzXGsZdFwS16Y


参数形式:id:12


2.application/json(常用)


方式一


let data = {
  id: 12
};
axios.post("/data.json", data).then(res=>{ 
  console.log(res, 'post')
});

方式二

let data = {
  id: 12
};
axios({ 
  method:'post',
  url:'/data.json',
  data:data
}).then(res=>{ 
  console.log(res)
})


注意:请求地址Request URL: http://xxxxxxxx/data.json,

请求头中Content-Type: application/json;charset=UTF-8

参数形式:{ id:12 }

3、put方法

let data = { 
    id: 12
};
axios.put("/data.json", data).then(res=>{ 
    console.log(res, 'put')
});

4、patch方法

let data = { 
  id: 12
};
axios.patch("/data.json", data).then(res=>{ 
  console.log(res, 'patch')
});

5、delete方法

方式一:params

axios
      .delete("/data.json", { 
        params: { 
          id: 12
        }
      })
      .then(res => { 
        console.log(res, "delete");
      });
let params = { 
      id: 12
    };
    axios({ 
      method:'delete',
      url:'/data.json',
      params:params
    }).then(res=>{ 
      console.log(res)
    })

方式二:data

axios
      .delete("/data.json", { 
        data: { 
          id: 12
        }
      })
      .then(res => { 
        console.log(res, "delete");
      });
let data = { 
      id: 12
    };
    axios({ 
      method:'delete',
      url:'/data.json',
      data:data
    }).then(res=>{ 
      console.log(res)
    })

注意:params方式会将请求参数拼接在URL上面,Request URL: http://xxxxxxxx/data.json?id=12


参数形式:id:12


Content-Type: text/html; charset=utf-8


data方式不会讲参数拼接,是直接放置在请求体中的,Request URL: http://xxxxxxxx/data.json


参数形式:{id:12}


Content-Type: application/json;charset=UTF-8


总结:上述方法中均对应两种写法:(1)使用别名:形如axios.get();(2)不使用别名形如axios();


相关文章
|
7月前
|
JSON JavaScript 前端开发
从零开始教会你Axios
从零开始教会你Axios
61 0
|
3月前
|
Python
HTTP协议不再是迷!Python网络请求实战,带你走进网络世界的奥秘
本文介绍了HTTP协议,它是互联网信息传递的核心。作为客户端与服务器通信的基础,HTTP请求包括请求行、头和体三部分。通过Python的`requests`库,我们可以轻松实现HTTP请求。本文将指导你安装`requests`库,并通过实战示例演示如何发送GET和POST请求。无论你是想获取网页内容还是提交表单数据,都能通过简单的代码实现。希望本文能帮助你在Python网络请求的道路上迈出坚实的一步。
71 0
|
4月前
|
JavaScript 前端开发 C++
【Vue.js的终极对决】服务端渲染VS客户端渲染:一场关乎速度与SEO的生死较量!
【8月更文挑战第30天】Vue.js 是一个流行的 JavaScript 框架,支持服务端渲染(SSR)和客户端渲染。SSR 在服务器生成完整 HTML,有利于 SEO 并缩短首屏加载时间,但增加服务器负担;客户端渲染则在浏览器生成页面,提升交互性,降低服务器负载。本文通过代码示例对比两者优劣,并提供选择指南,帮助开发者根据 SEO 需求、交互性需求及服务器资源等条件,选择合适的渲染方式,从而优化应用性能和用户体验。
85 0
|
4月前
|
前端开发 应用服务中间件 API
"揭秘!面试官必问:你是如何巧妙绕过跨域难题的?前端代理VS服务器端CORS,哪个才是你的秘密武器?"
【8月更文挑战第21天】在软件开发中,尤其前后端分离架构下,跨域资源共享(CORS)是常见的挑战。主要解决方案有两种:一是服务器端配置CORS策略,通过设置响应头控制跨域访问权限,无需改动前端代码,增强安全性;二是前端代理转发,如使用Nginx或Webpack DevServer在开发环境中转发请求绕过同源策略,简化开发流程但不适用于生产环境。生产环境下应采用服务器端CORS策略以确保安全稳定。
59 0
|
7月前
|
存储 JSON 缓存
【源码共读】axios的46个工具函数
【源码共读】axios的46个工具函数
155 0
细谈Axios中那些不为人知的秘密!一文读懂Axios(三)
细谈Axios中那些不为人知的秘密!一文读懂Axios
100 0
|
JSON JavaScript 数据格式
细谈Axios中那些不为人知的秘密!一文读懂Axios(四)
细谈Axios中那些不为人知的秘密!一文读懂Axios
157 0
细谈Axios中那些不为人知的秘密!一文读懂Axios(二)
细谈Axios中那些不为人知的秘密!一文读懂Axios
171 0
|
前端开发 安全 Shell
对象准备入手前端开发,我连夜给ta准备了这篇git指南之终极奥义
对象是真的,连夜码字是真的,Git指南也是真的
256 0
对象准备入手前端开发,我连夜给ta准备了这篇git指南之终极奥义
|
前端开发
前端工作总结224-阅读代码之axios
前端工作总结224-阅读代码之axios
89 0