使用准备
axios是目前前端最热门的Ajax工具库,也是vue和react推荐的Ajax工具包,对于其源码感兴趣的或者想了解其特性的,可以访问其github的链接:https://github.com/axios/axios
下载axios的方法有很多种,这里演示就不使用npn下载了,而是使用CND链接。
但是这里的CDN链接是国外的链接,访问起来会比较慢。
所以推荐网站bootcdn中的链接:https://www.bootcdn.cn/axios/,复制任意链接即可。
然后我们准备前端代码,这里只需要把上节课的按钮复制即可,但是需要把jQuery换成axios的包。
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!--引入axios的包--><script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.js"></script><style>.container{width: 500px;height: 500px;margin: 0 auto;text-align: center;}.btn{width: 150px;height: 50px;background-color: rgb(157, 201, 238);border-radius: 10px;}</style></head><body><div class="container"><h2 class="page_header">axios发送Ajax请求</h2><hr/><button class="btn">GET</button><button class="btn">POST</button><button class="btn">通用型方法ajax</button></div><script></script></body></html>
然后需要准备服务端代码
//省略部分内容,其他部分内容即为上一节的服务端代码app.all('/axios-server',(request,response)=>{//设置响应头 设置允许跨域(第一次接触Ajax,不需要完全理解代码)response.setHeader('Access-Control-Allow-Origin','*');//允许接收所有类型的响应头response.setHeader('Access-Control-Allow-Headers','*');const data = {"name": "yuque"};let str = JSON.stringify(data);//设置响应体response.send(str);})
GET请求
axios发生get请求的方法很简单,使用axios.get()方法就好了。
<script>const btn = document.querySelectorAll('.btn');//配置baseURL,简化路径axios.defaults.baseURL = 'http://127.0.0.1:8000';btn[0].onclick = function(){//GET请求,如果每配置baseURL,这里需要写完整路径axios.get('/axios-server', {//url 参数params: {id:100,vip:7},//请求头信息headers:{name:"abc",age:18}}).then(response => {//获取响应结果console.log(response);});}</script>
来到浏览器发送GET请求,可以看到这里返回的是全部响应结果,包括响应状态码,状态字符串,甚至连响应体也自动帮我们转换成了js对象。

POST请求
POST请求和GET请求有一些区别,GET请求中,第二个参数就是请求内容;而在POST请求中,第二个参数是请求体内容,第三个参数中是其他请求参数。
//省略部分内容...btn[1].onclick = function(){//上面已经设置baseURL了,这里可以使用简化的url链接//第二个参数是请求体内容axios.post('/axios-server',{username:"张三",password:"123456"},{//url参数params:{id:100,vip:9},//请求头headers:{a:300,b:400}}).then(response => {//这个方法和GET方法一样console.log(response);})}
来到浏览器,可以看到axios发送了POST请求,但是需要注意这里的请求体内容是json格式字符串,而不是url查询字符串形式。


通用型方式
通用性方法非常简单,和jQuery也很像,直接使用axios()函数即可,这种方式非常的清晰,自上而下的填写请求参数即可。
//省略部分内容...btn[2].onclick = function(){axios({//请求方式method: "POST",//urlurl: '/axios-server',//url参数params:{id:150,vip:10},//头信息headers:{a:100,b:600},//请求体data:{username:"张三",password:"123456"}}).then(response => {//输出响应内容console.log(response);//响应状态码console.log(response.status);//响应字符串console.log(response.statusText);//响应体console.log(response.data);})}
来到浏览器,可以看到可以正常的发送我们的请求信息


