前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

axios

作者头像
捞月亮的小北
发布2023-12-01 09:31:31
1610
发布2023-12-01 09:31:31
举报
文章被收录于专栏:捞月亮的小北捞月亮的小北

Axios 对原生的AJAX进行封装,简化书写。

Axios官网是:?https://www.axios-http.cn?

1. 基本使用

axios 使用是比较简单的,分为以下两步:

引入 axios 的 js 文件

代码语言:javascript
复制
<script src="js/axios-0.18.0.js"></script>

使用axios 发送请求,并获取响应结果

发送 get 请求

代码语言:javascript
复制
axios({
 ? ?method:"get",
 ? ?url:"http://localhost:8080/ajax-demo1/aJAXDemo1?username=zhangsan"
}).then(function (resp){
 ? ?alert(resp.data);
})

发送 post 请求

代码语言:javascript
复制
axios({
 ? ?method:"post",
 ? ?url:"http://localhost:8080/ajax-demo1/aJAXDemo1",
 ? ?data:"username=zhangsan"
}).then(function (resp){
 ? ?alert(resp.data);
});

?axios()? 是用来发送异步请求的,小括号中使用 js 对象传递请求相关的参数:

  • ?method? 属性:用来设置请求方式的。取值为 get? 或者 post?。
  • ?url? 属性:用来书写请求的资源路径。如果是 get? 请求,需要将请求参数拼接到路径的后面,格式为: url?参数名=参数值&参数名2=参数值2?。
  • ?data? 属性:作为请求体被发送的数据。也就是说如果是 post? 请求的话,数据需要作为 data? 属性的值。

?then()? 需要传递一个匿名函数。我们将 then()? 中传递的匿名函数称为 回调函数,意思是该匿名函数在发送请求时不会被调用,而是在成功响应后调用的函数。而该回调函数中的 resp? 参数是对响应的数据进行封装的对象,通过 resp.data? 可以获取到响应的数据。

2. 快速入门

2.1 后端实现

定义一个用于接收请求的servlet,代码如下:

代码语言:javascript
复制
@WebServlet("/axiosServlet")
public class AxiosServlet extends HttpServlet {
 ? ?@Override
 ? ?protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 ? ? ? ?System.out.println("get...");
 ? ? ? ?//1. 接收请求参数
 ? ? ? ?String username = request.getParameter("username");
 ? ? ? ?System.out.println(username);
 ? ? ? ?//2. 响应数据
 ? ? ? ?response.getWriter().write("hello Axios~");
 ?  }

 ? ?@Override
 ? ?protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 ? ? ? ?System.out.println("post...");
 ? ? ? ?this.doGet(request, response);
 ?  }
}

2.2 前端实现

引入 js 文件

代码语言:javascript
复制
<script src="js/axios-0.18.0.js"></script>

发送 ajax 请求

get 请求

代码语言:javascript
复制
axios({
 ? ?method:"get",
 ? ?url:"http://localhost:8080/ajax-demo/axiosServlet?username=zhangsan"
}).then(function (resp) {
 ? ?alert(resp.data);
})

post 请求

代码语言:javascript
复制
axios({
 ? ?method:"post",
 ? ?url:"http://localhost:8080/ajax-demo/axiosServlet",
 ? ?data:"username=zhangsan"
}).then(function (resp) {
 ? ?alert(resp.data);
})

整体页面代码如下:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
 ? ?<meta charset="UTF-8">
 ? ?<title>Title</title>
</head>
<body>

<script src="js/axios-0.18.0.js"></script>
<script>
 ? ?//1. get
 ? /* axios({
 ? ? ?  method:"get",
 ? ? ?  url:"http://localhost:8080/ajax-demo/axiosServlet?username=zhangsan"
 ?  }).then(function (resp) {
 ? ? ?  alert(resp.data);
 ?  })*/

 ? ?//2. post  在js中{} 表示一个js对象,而这个js对象中有三个属性
 ? ?axios({
 ? ? ? ?method:"post",
 ? ? ? ?url:"http://localhost:8080/ajax-demo/axiosServlet",
 ? ? ? ?data:"username=zhangsan"
 ?  }).then(function (resp) {
 ? ? ? ?alert(resp.data);
 ?  })
</script>
</body>
</html>

2.3 请求方法别名

为了方便起见, Axios 已经为所有支持的请求方法提供了别名。如下:

  • ?get? 请求 : axios.get(url[,config])?
  • ?delete? 请求 : axios.delete(url[,config])?
  • ?head? 请求 : axios.head(url[,config])?
  • ?options? 请求 : axios.option(url[,config])?
  • ?post? 请求:axios.post(url[,data[,config])?
  • ?put? 请求:axios.put(url[,data[,config])?
  • ?patch? 请求:axios.patch(url[,data[,config])?

而我们只关注?get? 请求和 post? 请求。

入门案例中的?get? 请求代码可以改为如下:

代码语言:javascript
复制
axios.get("http://localhost:8080/ajax-demo/axiosServlet?username=zhangsan").then(function (resp) {
 ? ?alert(resp.data);
});

**入门案例中的 **post? 请求代码可以改为如下:

代码语言:javascript
复制
axios.post("http://localhost:8080/ajax-demo/axiosServlet","username=zhangsan").then(function (resp) {
 ? ?alert(resp.data);
})
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 基本使用
  • 2. 快速入门
    • 2.1 后端实现
      • 2.2 前端实现
        • 2.3 请求方法别名
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com