Axios介绍

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

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

基本使用

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

    • 发送 get 请求

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

      发送 post 请求

      java 复制代码
      axios({
          method:"post",
          url:"http://localhost:8080/ajax-demo1/ajaxDemo",
          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 可以获取到响应的数据。

快速入门

后端实现
  • 定义一个用于接收请求的servlet,代码如下:

    java 复制代码
    @WebServlet("/ajaxServlet")
    public class AjaxServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("get...");
            //接收请求参数
            String username = request.getParameter("username");
            System.out.println(username);
            //响应数据
            response.getWriter().write("HELLO AXIOS");
        }
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("post...");
            this.doGet(request, response);
        }
    }
前端实现
  • 引入 js 文件

    java 复制代码
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

发送 ajax 请求

  • get 请求

    java 复制代码
    axios({
        method: "get",
        url: "http://localhost:8080/ajax_demo/ajaxServlet?username=zhangsan"
    }).then(function (resp) {
        alert(resp.data);
    })
  • post 请求

    java 复制代码
    axios({
        method: "post",
        url: "http://localhost:8080/ajax_demo/ajaxServlet",
        data: "username=zhangsan"
    }).then(function (resp) {
        alert(resp.data);
    })
  • 整体页面代码如下:

java 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
    // axios({
    //     method: "get",
    //     url: "http://localhost:8080/ajax_demo/ajaxServlet?username=zhangsan"
    // }).then(function (resp) {
    //     alert(resp.data);
    // })

    axios({
        method: "post",
        url: "http://localhost:8080/ajax_demo/ajaxServlet",
        data: "username=zhangsan"
    }).then(function (resp) {
        alert(resp.data);
    })

</script>
</body>
</html>

分别测试get请求和post请求,

  • get请求会在页面上出现一个alert弹窗显示HELLO AXIOS,同时控制台输出

get...

zhangsan

  • post请求会在页面上出现一个alert弹窗显示HELLO AXIOS,同时控制台输出

post...

get...

zhangsan

请求方法别名

为了方便起见, 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 请求代码可以改为如下

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

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

java 复制代码
axios.post("http://localhost:8080/ajax-demo/axiosServlet","username=zhangsan").then(function (resp) {
    alert(resp.data);
})
相关推荐
Kapaseker5 小时前
你不看会后悔的2025年终总结
android·kotlin
alexhilton8 小时前
务实的模块化:连接模块(wiring modules)的妙用
android·kotlin·android jetpack
ji_shuke9 小时前
opencv-mobile 和 ncnn-android 环境配置
android·前端·javascript·人工智能·opencv
sunnyday042611 小时前
Spring Boot 项目中使用 Dynamic Datasource 实现多数据源管理
android·spring boot·后端
幽络源小助理12 小时前
下载安装AndroidStudio配置Gradle运行第一个kotlin程序
android·开发语言·kotlin
inBuilder低代码平台12 小时前
浅谈安卓Webview从初级到高级应用
android·java·webview
豌豆学姐12 小时前
Sora2 短剧视频创作中如何保持人物一致性?角色创建接口教程
android·java·aigc·php·音视频·uniapp
白熊小北极12 小时前
Android Jetpack Compose折叠屏感知与适配
android
HelloBan12 小时前
setHintTextColor不生效
android
洞窝技术15 小时前
从0到30+:智能家居配网协议融合的实战与思考
android