AJax和Axios的讲解

news2024/12/25 9:06:03

目录

 Ajax

 Ajax基本介绍

同步异步

原生Ajax

原生的Ajax使用方式

Axios

基本介绍

Axios的基本使用

发送 get 请求

发送 post 请求

Axios快速入门

请求方法的别名

练习


 Ajax

 Ajax基本介绍

Ajax: 全称Asynchronous JavaScript And XML,异步的JavaScript和XML。其作用有如下2点:

  • 与服务器进行数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。

  • 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。

同步异步

同步请求发送过程示意图

浏览器页面在发送请求给服务器,在服务器处理请求的过程中,浏览器页面不能做其他的操作。只能等到服务器响应结束后才能,浏览器页面才能继续做其他的操作。

异步请求发送过程示意图 

浏览器页面发送请求给服务器,在服务器处理请求的过程中,浏览器页面还可以做其他的操作。

原生Ajax

因为Ajax请求是基于客户端发送请求,服务器响应数据的。所以这里会提供服务端的地址,用来测试

服务器端

我们提供了一个地址直接通过Ajax请求访问该地址即可

后台服务器地址:http://yapi.smart-xwork.cn/mock/169327/emp/list

上述地址是通过我们的一个测试工具YAPI

客户端

客户端的Ajax请求代码

代码演示:

创建了一个XMLHttpRequest对象,用于和服务器交换数据,也是原生Ajax请求的核心对象,提供了各种方法。

调用对象的open()方法设置请求的参数信息,例如请求地址,请求方式。然后调用send()方法向服务器发送请求。

我们通过绑定事件的方式,来获取服务器响应的数据。

原生的Ajax使用方式

代码演示:

<!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</title>
</head>
<body>
    
    <input type="button" value="获取数据" onclick="getData()">

    <div id="div1"></div>
    
</body>
<script>
    function getData(){
        //1. 创建XMLHttpRequest 
        var xmlHttpRequest  = new XMLHttpRequest();
        
        //2. 发送异步请求
        xmlHttpRequest.open('GET','http://yapi.smart-xwork.cn/mock/169327/emp/list');
        xmlHttpRequest.send();//发送请求
        
        //3. 获取服务响应数据
        xmlHttpRequest.onreadystatechange = function(){
            if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
                document.getElementById('div1').innerHTML = xmlHttpRequest.responseText;
            }
        }
    }
</script>
</html>

Axios

基本介绍

原生的Ajax使用起来还是比较繁琐的,接下来我们使用axios,Axios是对原生的AJAX进行封装,简化书写。

Axios的基本使用

第一步:引入axios文件

第二步:使用Axios发送请求,并获取响应结果

Axios发送请求的方式

发送 get 请求

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

发送 post 请求

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

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

  • method属性:用来设置请求方式的。取值为 get 或者 post。

  • url属性:用来书写请求的资源路径。如果是 get 请求,需要将请求参数拼接到路径的后面,格式为: url?参数名=参数值&参数名2=参数值2。如果是post请求的方式,因为请求参数不能再,卸载路径的后面,需要单独设置一个属性。

  • data属性:作为请求体被发送的数据。也就是说如果是 post 请求的话,数据需要作为 data 属性的值。

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

Axios快速入门

根据提供的后端地址查询所有员工的信息,和根据员工id删除信息

代码演示:

<!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>

请求方法的别名

方法描述
axios.get(url [, config])发送get请求
axios.delete(url [, config])发送delete请求
axios.post(url [, data[, config]])发送post请求
axios.put(url [, data[, config]])发送put请求

上面的请求方式可以简化成这样

get请求

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

post请求

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

练习

代码演示:

思路分析:

1. 使用v-for遍历加载元素 

2.在显示图片的时候,要注意使用v-bind 进行绑定 v-bind还可以简化写成:

3.创建了一个Vue对象,定义Vue对象接管的区域,定义数据模型,并且使用Vue对象生命周期中的一个monuted()的钩子方法,当我们在创建在我们Vue对象创建成功的时候,会自动的触发里面的方法,使用axios发送异步请求,请求服务端的数据,并将其赋值给当前vue对象的emps

<!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>

            <!-- 使用v-for遍历加载元素 -->
            <tr align="center" v-for="(emp,index) in emps">
                <!-- 使用插值表达式讲元素显示出来 -->
                <td>{{index + 1}}</td>
                <td>{{emp.name}}</td>
                <td>
                    <!-- 这里使用了v-bind 为URL绑定属性, 当然v-bind可以简化写成: -->
                    <img :src="emp.image" width="70px" height="50px">
                </td>
                <td>
                    <!-- 使用span无语义的标签,使用v-if进行判断,显示男还是女 -->
                    <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>
    //创建了一个Vue对象
    new Vue({
       el: "#app",//定义了一个vue接管的区域
       data: {
         emps:[]//定义了一个数据模型
       },
       //这是Vue对象的钩子方法,在我们Vue对象创建成功的时候,会自动的触发里面的方法,使用axios发送异步请求,请求服务端的数据,并将其赋值给当前vue对象的emps
       mounted () {
          //发送异步请求,加载数据
          axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => {
            this.emps = result.data.data;
          })
       }
    });
</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/542548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日一题/数学模拟题/进位算术】1073. 负二进制数相加

⭐️前面的话⭐️ 本篇文章介绍【1073. 负二进制数相加】题解&#xff0c;算法标签&#xff1a;【数学】&#xff0c;【思维】&#xff0c;【模拟算术】&#xff0c;展示语言c/java。 &#x1f4d2;博客主页&#xff1a;未见花闻的博客主页 &#x1f389;欢迎关注&#x1f50e…

代码随想录训练营Day38| 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

目录 学习目标 学习内容 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 学习目标 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 学习内容 理论基础 problems/动态规划理论基础.md programmercarl/leetcode-master&#xff08;代码随…

C++的list使用

list 1.list的介绍和使用1.1. list介绍1.2. list的使用1.2.1 list的构造1.2.2. list iterator的使用1.2.3. list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list的迭代器失效 1.list的介绍和使用 1.1. list介绍 list是可以在常数范围内在任意位置进行插入…

chatgpt赋能Python-python2的n次方

Python2中实现n次方的方法 Python是一种非常受欢迎的编程语言&#xff0c;其简单易学的特性吸引了大量的开发者前来学习和使用。在Python2中&#xff0c;实现n次方有多种方法&#xff0c;下面就给大家介绍一些。 方法一&#xff1a;使用运算符 在Python2中&#xff0c;可以使…

不重启Linux修改主机名,以CentOS 7举例

在 Linux 中&#xff0c;可以通过修改主机名配置文件的方式更改主机名&#xff0c;不需要重启机器即可立即生效。 下面介绍一下具体步骤&#xff1a; 1、查看原始主机名 比如我的主机名叫small-black 2、使用命令行修改主机名 2.1 修改主机名 首先&#xff0c;使用以下命…

2023年的深度学习入门指南(14) - 不能只关注模型代码

2023年的深度学习入门指南(14) - 不能只关注模型代码 最近&#xff0c;有一张大模型的发展树非常流行&#xff1a; 这个图是相当不错的&#xff0c;对于加深对于Transformer模型编码器、解码器作用的理解&#xff0c;模型的开源和闭源情况等等都相当有帮助&#xff0c;大家使…

尝试Google Bard并对比OpenAI ChatGPT,一个擅长创造性,一个擅长事实查询?

文章目录 尝试Google Bard并对比OpenAI ChatGPT&#xff0c;一个擅长创造性&#xff0c;一个擅长事实查询&#xff1f;Google Bard 的自我介绍Google Bard 暂时不支持中文Google Bard除了支持英语外&#xff0c;还支持日语Google Bard和OpenAI ChatGPT的对比Google Bard的回答O…

音乐宿主软件排行榜前十名,音乐宿主要买正版吗

随着电子音乐的不断发展&#xff0c;一些电子音乐爱好者开始尝试自己编写电子音乐。而编写电子音乐必不可少的一点就是需要一款非常好用的音乐宿主软件&#xff0c;那么今天我们就来说一说音乐宿主软件排行榜前十名以及音乐宿主软件要买正版吗这两个问题。 一、音乐宿主软件排…

数组【C语言】

目录 一维数组的创建和初始化 数组创建 数组的初始化 一维数组的使用 一维数组在内存中的存储 二维数组的创建与初始化 二维数组的创建 二维数组的初始化 二维数组的使用 二维数组在内存中的存储 数组越界 数组名作为函数参数 数组名 一维数组的创建和初始化 数组…

chatgpt赋能Python-python3_8降级3_6

Python3.8降级3.6&#xff0c;你需要知道的一切 在Python语言的世界中&#xff0c;每一个版本带来了新的变化和功能。但是在某些情况下&#xff0c;汲取早期版本的优点也是很必要的。Python3.8之前的版本当中&#xff0c;Python3.6是广泛使用的版本&#xff0c;因为它包含了许…

t检验是基于t分布的

例&#xff1a;鸢尾花的平均花瓣长度为3.5cm&#xff0c;这种说法正确吗&#xff1f; 可以根据假设检验的步骤&#xff0c;进行解决。 /设置原假设与备择假设&#xff1a; 原假设&#xff1a;μ μ0 3.5cm&#xff08;说法正确&#xff09; 备择假设&#xff1a;μ ≠ μ0 ≠…

chatgpt赋能Python-python3_8怎么安装matplotlib

Python3.8怎么安装Matplotlib Matplotlib是一个非常流行的Python可视化库&#xff0c;它可以用来创建各种类型的图形&#xff0c;包括线图、散点图、直方图、饼图和热图等等。在本文中&#xff0c;我们将介绍如何在Python3.8中安装Matplotlib&#xff0c;以及如何使用它来绘制…

chatgpt赋能Python-python3_9_0怎么安装

Python3.9.0的安装指南 Python作为目前世界上使用最广泛的编程语言之一&#xff0c;在数据科学、人工智能、Web开发等领域都有着广泛的应用。而今年10月5日&#xff0c;Python官方发布了最新的稳定版本——Python3.9.0。本文将提供一份简明的Python3.9.0安装指南。 准备工作 …

C++模板类与继承

目录 分类 一、模板类不继承 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;分析 &#xff08;3&#xff09;运行结果 二、模板类继承普通类 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;分析 &#xff08;3&#xff09;运行结果 三、普通类继…

【TCP协议】TCP的运输连接管理-三次握手四次挥手

TCP 的运输连接管理 TCP 是面向连接的协议&#xff0c;运输连接是用来传送 TCP 报文的&#xff0c;TCP 的运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。因此&#xff0c;运输连接就有三个阶段&#xff0c;即&#xff1a;连接建立、数据传输、连接释放。 TCP…

chatgpt赋能Python-python3_6_6怎么用

Python3.6.6的基本介绍 1. Python3的发展历程 自1991年Guido van Rossum创造了Python language以来&#xff0c;Python一直在不断发展和改进。Python3是Python中的最新版本&#xff0c;它对Python2进行了重大升级。Python3.6.6是Python3的一个稳定版本&#xff0c;其中包含了…

chatgpt赋能Python-python3_4安装numpy

Python3.4安装Numpy的SEO指南 Numpy是Python科学计算库之一&#xff0c;它提供了强大的支持&#xff0c;使您可以使用Python进行数学和科学计算。Numpy的安装是许多Python开发者必须掌握的技能&#xff0c;因为它是许多其他库的先决条件。在本SEO指南中&#xff0c;我们将介绍…

MATLAB信号处理:滤波器设计、频域分析和数字信号处理的应用和优化

章节一&#xff1a;引言 在现代科技领域中&#xff0c;信号处理起着至关重要的作用。它涵盖了从音频和图像处理到通信和生物医学工程等众多领域。MATLAB作为一种强大的数值计算软件&#xff0c;为信号处理提供了丰富的工具和函数&#xff0c;使得信号处理任务更加高效和可靠。…

chatgpt赋能Python-python3_6怎么下载

Python3.6如何下载&#xff1a;完全指南 Python 3.6是一种非常强大的编程语言&#xff0c;被广泛应用于各种应用程序和领域。如果你还没有安装Python 3.6&#xff0c;那么你已经错过了很多有趣的功能和工具。本文将向你介绍如何在各种操作系统上下载Python 3.6&#xff0c;无论…

在Vue项目中vue-quill-editor的安装与使用【详细图解+过程+包含图片的缩放拖拽】

Quill 官网&#xff1a;https://quilljs.com// 一、Quill的安装与使用&#xff08;初级&#xff09; 1、下载安装 npm install vue-quill-editor --save这里建议使用管理员命令窗口的形式&#xff0c;找到自己的项目&#xff0c;如下图所示。然后进行安装&#xff08;目的&a…