axios

一、概述

简介

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
axios前端异步请求库 类似jQuery ajax技术
ajax用来在页面发起异步请求到后端服务,并将后端服务响应数据渲染到页面上

axios总结
用来在前端页面发起一个异步请求,请求之后页面不动,响应回来刷新页面局部
官方定义:
axios异步请求库 并不是vue官方库 第三方异步库 在vue中推荐axios
易用、简介且高效的http库==> 发送http异步请求库

官方网站
http://www.axios-js.com/

特性

  • 从浏览器中创建 XMLHttpRequests
  • 从 node.js 创建 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求数据和响应数据
  • 取消请求
  • 自动转换 JSON 数据
  • 客户端支持防御 XSRF

二、基本使用

<script src="js/axios.min.js"></script>

发送异步请求

get

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <div>
    axios的基本使用
  </div>
</body>
</html>
<script src="js/axios.min.js"></script>
<script>
  //发送axios的get方式请求
  axios.get("http://localhost:8080/demo?id=21&name=xiaochen")
       .then(function(res) {//代表请求成功之后处理
         console.log(res);
         console.log(res.data)
       }).catch(function (err) {//代表请求失败之后处理
         console.log(err);
  })
</script>
  • AdminController
@RestController //代表接口中返回的都是json格式数据
@CrossOrigin //运行所有的请求 所有域访问 解决:跨域问题
public class AdminController {
    //测试接口
    @GetMapping("demo")

    public String demo(){
        System.out.println("demo...");
        return "demo ok";
    }

}

  • 测试
    在这里插入图片描述
  • 接收参数
	//测试接口
    @GetMapping("demo")
    public String demo(@RequestParam("id") String id, @RequestParam("name") String name){
        log.info("demo ok ....");
        log.info("id:{} name:{}", id, name);

        System.out.println("demo...");
        return "demo ok";
    }
  • 测试
    在这里插入图片描述

post

前端

//发送一个post请求
  axios.post("http://localhost:8080/test")
      .then(function(res) {//代表请求成功之后处理
          console.log(res);
          console.log(res.data)
      }).catch(function (err) {//代表请求失败之后处理
      console.log(err);
  })
  • 后端
	@PostMapping("test")
    public String test(){
        log.info("test ok ....");
        System.out.println("test...");
        return "test ok";
    }
  • 测试
    在这里插入图片描述
  • 前端传参
	//发送一个post请求
  axios.post("http://localhost:8080/test",{id: 23,name: "hmx"})
      .then(function(res) {//代表请求成功之后处理
          console.log(res);
          console.log(res.data)
      }).catch(function (err) {//代表请求失败之后处理
      console.log(err);
  })
  • 后端
	//测试接口
    @PostMapping("test")
    public String test(@RequestBody User user){
        log.info("test ok ....");
        log.info("id:{} name:{}", user.getId(), user.getName());

        System.out.println("test...");
        return "test ok";
    }
  • 测试
    在这里插入图片描述

请求配置

  //创建axios的配置对象
  var instance = axios.create({
      baseURL:"http://localhost:8080/",
      timeout: 5000,
  });

  //发送get方式请求
  instance.get("/demo?id=11&name=hmx").then(function(res) {//代表请求成功之后处理
      console.log(res);
      console.log(res.data)
  }).catch(function (err) {//代表请求失败之后处理
      console.log(err);
  })

  instance.post("/test",{id:23,name:"hmx"})
      .then(function(res) {//代表请求成功之后处理
          console.log(res);
          console.log(res.data)
      }).catch(function (err) {//代表请求失败之后处理
      console.log(err);
  })
  • 测试
    在这里插入图片描述

三、axios-拦截器

在请求或响应被 then 或 catch 处理前拦截它们。

作用: 用来将axios中共有参数,响应公共处理交给拦截器处理,减少axios发送请求时代码冗余

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值