Java Web学习笔记20——Ajax-Axios

Axios:

介绍:Axios对原生的Ajax进行封装,简化书写,快速开发。

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

Axios 入门:

{}是Js的对象。

get的请求参数是在URL后面?和相关参数值。

post的请求参数是在请求体中的。

成功回调函数:

js对象result,result.data就可以拿到result这个对象的data属性,data属性里面就是服务端响应回来的数据。

案例:

html 复制代码
<!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>Ajax-Axios</title>
    <script src="js/axios-0.18.0.js"></script>
</head>
<body>
    
    <input type="button" value="获取数据GET" onclick="get()">

    <input type="button" value="删除数据POST" onclick="post()">

</body>
<script>
    function get(){
        //通过axios发送异步请求-get
        // axios({
        //     method: "get",
        //     url: "http://yapi.smart-xwork.cn/mock/169327/emp/list"
        // }).then(result => {
        //     console.log(result.data);
        // })


        axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => {
            console.log(result.data);
        })
    }

    function post(){
        //通过axios发送异步请求-post
        // axios({
        //     method: "post",
        //     url: "http://yapi.smart-xwork.cn/mock/169327/emp/deleteById",
        //     data: "id=1"
        // }).then(result => {
        //     console.log(result.data);
        // })

        axios.post("http://yapi.smart-xwork.cn/mock/169327/emp/deleteById","id=1").then(result => {
            console.log(result.data);
        })
    }
</script>
</html>

打开开发者工具:

这种方式是我们项目中推荐的方法。

案例:

基于Vue及Axios完成数据的动态加载展示:

1、数据准备的URL:

2、在页面加载完成后,自动发送异步请求,加载数据,渲染展示页面(性别1:男,2代表女)。

html 复制代码
<!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>Ajax-Axios-案例</title>
    <script src="js/axios-0.18.0.js"></script>
    <script src="js/vue.js"></script>
</head>
<body>
    <div id="app">
        <table border="1" cellspacing="0" width="60%">
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>图像</th>
                <th>性别</th>
                <th>职位</th>
                <th>入职日期</th>
                <th>最后操作时间</th>
            </tr>

            <tr align="center" v-for="(emp,index) in emps">   /* 在视图中渲染展示列表数据*/
                <td>{{index + 1}}</td>
                <td>{{emp.name}}</td>
                <td>
                    <img :src="emp.image" width="70px" height="50px">
                </td>
                <td>
                    <span v-if="emp.gender == 1">男</span>
                    <span v-if="emp.gender == 2">女</span>
                </td>
                <td>{{emp.job}}</td>
                <td>{{emp.entrydate}}</td>
                <td>{{emp.updatetime}}</td>
            </tr>
        </table>
    </div>
</body>
<script>
    new Vue({
       el: "#app",
       data: {
         emps:[]    // 数据模型
       },
       mounted () {
          //发送异步请求,加载数据
          axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => {
            this.emps = result.data.data;   // 把获得数据给了数据模型emps
          })
       }
    });
</script>
</html>

发送的是异步请求,从服务器获得数据,数据是json格式的,然后我们给了数据模型emps,然后在view中渲染展示这些数据,通过插值表达式等方式。

其中头像使用的是地址。

v-bind是为标签绑定属性值,再回顾下。

相关推荐
yiwanbin3 天前
手写一个单例模式然后问如何破坏这个单例模式
javaweb
赛博末影猫7 天前
SpringMVC(1)——入门程序+流程分析
springmvc·javaweb·dispatcher·表现层
阿尔法波1 个月前
08_第八章 微头条项目开发
java·tomcat·javaweb
摸鱼那些事儿1 个月前
Javaweb登录校验
javaweb
认真敲代码的小火龙1 个月前
JWT令牌、过滤器Filter、拦截器Interceptor
java·javaweb
摸鱼那些事儿1 个月前
AOP面向切面(方法)编程
java·javaweb
OEC小胖胖1 个月前
EL隐式对象的实现原理
java·开发语言·后端·javaweb
CCH20231 个月前
Java Web学习笔记18——Vue案例
javaweb
CCH20231 个月前
Java Web学习笔记25——Vue组件库Element
javaweb
CCH20231 个月前
Java Web学习笔记12——JavaScript字符串
javaweb