首页 > 其他分享 >Ajax入门

Ajax入门

时间:2024-11-11 14:44:10浏览次数:3  
标签:axios 入门 yapi 380899 Ajax result https data

Ajax

AJAX(Asynchronous JavaScript and XML)是一种用于创建动态网页的技术,允许网页在不重新加载整个页面的情况下,与服务器进行异步数据交换和更新内容。这使得用户操作更加流畅,提供了类似桌面应用的体验。

  • 作用
    • 数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据
    • 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用的校验等等。

一、原生Ajax

实现步骤

  1. 准备数据地址:https://yapi.pro/mock/380899/usergetid
  2. 创建XMLHttpRequest对象:用于和服务器交换数据
  3. 向服务器发送请求
  4. 获取服务器响应数据

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ajax_demo01</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','https://yapi.pro/mock/380899/usergetid');
        xmlHttpRequest.send(); // 发送请求

        // 3、获取服务器响应的数据
        xmlHttpRequest.onreadystatechange = function() {
            if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
                document.getElementById('div1').innerHTML = xmlHttpRequest.responseText;
            }
        }
    }
</script>
</html>

当点击获取数据的按钮时:

在这里插入图片描述

但是原生的Ajax实现时太过繁琐(所以不推荐使用)

二、Axios

Axios 是一个基于 Promise 的 JavaScript 库,专门用于在浏览器和 Node.js 中发送 HTTP 请求,类似于 AJAX,但提供了更便捷的 API 和更强大的功能。Axios 使用简单、支持异步操作,并且能够处理常见的 HTTP 请求操作,如 GET、POST、PUT、DELETE 等。

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

实现步骤

  1. 引入Axiosjs文件
  2. 使用Axios发送请求,并获取响应结果

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Axios_demo01</title>
    <script src="js/axios.min.js"></script>
</head>
<body>
    <input type="button" value="获取数据" onclick="getdata()">

    <input type="button" value="删除数据" onclick="deletedata()">
</body>
<script>
    function getdata() {
         axios({
             method: "get",
             url: "https://yapi.pro/mock/380899/usergetid"
         }).then((result) => {
             console.log(result.data);
         })
        // .then后面的是成功回调函数
    }

    function deletedata() {
         axios({
             method: "post",
             url: "https://yapi.pro/mock/380899/userdeleteid",
             data: "id = 1"
             // data = 1 通常用来简单地向服务器传递一个固定值
         }).then((result) => {
             console.log(result.data);
         })
    }
</script>
</html>

点击两个按钮后:

在这里插入图片描述

Axios的简写

请求方式的别名

  • axios.get(url[, config])
  • axios.delete(url[, config])
  • axios.post(url[, data[, config]])
  • axios.put(url[, data[, config]])

示例的发送GET和POST请求可以简写为

<script>
    function getdata() {
        // axios({
        //     method: "get",
        //     url: "https://yapi.pro/mock/380899/usergetid"
        // }).then((result) => {
        //     console.log(result.data);
        // })

        // 简化
        axios.get("https://yapi.pro/mock/380899/usergetid").then((result) => {
            console.log(result.data);
        })
    }

    function deletedata() {
        // axios({
        //     method: "post",
        //     url: "https://yapi.pro/mock/380899/userdeleteid",
        //     data: "id = 1"
        // }).then((result) => {
        //     console.log(result.data);
        // })

        // 简化
        axios.post("https://yapi.pro/mock/380899/userdeleteid", "data = 1").then((result) => {
            console.log(result.data);
        })
    }
</script>

三、综合案例:

​ 将从https://yapi.pro/mock/380899/usergetid中获取的数据通过前端vue渲染呈现在页面中

示例图

在这里插入图片描述

代码展示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Axios_demo02</title>
    <script src="js/axios.min.js"></script>
    <script src="js/vue.js"></script>
</head>
<body>
    <div id = 'App'>
        <table border="1px" cellspacing="0" width="75%">
            <caption>员工表</caption>
            <thead>
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>图片</th>
                    <th>性别</th>
                    <th>职位</th>
                    <th>入职时间</th>
                    <th>更新时间</th>
                </tr>
            </thead>
            <tbody>
                <tr align="center" v-for = "(emp, i) in emps">
                    <td>{{ i +  1 }}</td>
                    <td>{{ emp.name }}</td>
                    <!-- 使用v-bind绑定src是因为此处需要动态获取数据 -->
                    <td><img :src="emp.image" alt="图片加载失败" style="width: 150px; height: auto;"></td>
                    <td v-show="emp.gender == 1">男</td>
                    <td v-show="emp.gender == 2">女</td>
                    <td>{{ emp.job }}</td>
                    <td>{{ emp.entrydate }}</td>
                    <td>{{ emp.updatetime }}</td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
<script>
    new Vue({
        el: "#App",
        data() {
            return {
                // 定义一个数组,用于接收请求到的数组,并予以在页面的呈现
                emps: []
            }
        },
        mounted() {
            axios.get("https://yapi.pro/mock/380899/usergetid").then((result => {
                // result.data表示的全部的数据,后面再加一个.data是因为只要data数组里面的值
                this.emps = result.data.data;
            }))
        }
    })
</script>
</html>

标签:axios,入门,yapi,380899,Ajax,result,https,data
From: https://blog.csdn.net/2302_81034736/article/details/143685608

相关文章

  • 网络安全的副业兼职整理大全,零基础入门到精通,收藏这篇就够了
    网络安全是一个充满机遇的领域,不仅因为其对技术人才的高需求,也因为其灵活性,允许专业人士在全职工作之外探索副业和兼职机会。以下是一些值得考虑的途径:一.挖SRC漏洞1.合法挖洞:在合法的平台上挖掘安全漏洞,提交后可获得奖励。这种方式不仅能够锻炼你的技能,还能为你带来额......
  • 网络安全自学入门:(超详细)从入门到精通学习路线&规划,学完即可就业
    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。算上从学校开始学习,已经在网安这条路上走了10年了,无论是以前在学校做安全研究,还是毕业后在百度、360从事内核安全产......
  • python入门基础大全(全网最细)
    1.编码如果在程序中用到了中文,直接输出结果很可能会出错,比如:print("你好")解决的办法是,在程序的开头写入如下代码:#-*-coding:utf-8-*-或者#coding=utf-8用于向Python解释器声明源代码文件所用的编码类型为“utf-8”,如果代码里有中文,打印的时候可以使中文正常显示......
  • Python编程:从入门到实践(第3版)_练习10.5:访客薄
    编写一个while循环,提示用户输入其名字。收集用户输入的所有名字,将其写入guest_book.txt,并确保这个文件中的每条记录都独占一行。frompathlibimportPathpath=Path('guest_book.txt')contents="请输入你的姓名(最后一位请输入'q'):\n"guest_names=[]wh......
  • TypeScript入门基础
    参考网址-https://blog.csdn.net/guoxulieying/article/details/133771340基础类型-布尔值 -letisDone:boolean=false; -数字-TypeScript里的所有数字都是浮点数,这些浮点数的类型是number。除了支持十进制,还支持二进制、八进制、十六进制-以下......
  • freemarker 介绍 环境搭建&&快速入门 静态化测试
    概述:freemarker介绍环境搭建&&快速入门静态化测试FreeMarkerfreemarker简介环境搭建&&快速入门创建测试工程配置文件创建模型类创建模板创建controller创建启动类测试静态化测试需求分析静态化测试freemarker简介FreeMarker是一款模板引擎:即一种基于模板和......
  • Grafana快速入门指南下篇
    作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。目录一.tables(表格)展示数据1.环境准备2.配置Query(查询)3.配置Transform(转换)4.添加Overrides(覆盖)属性5.配置多指......
  • 刚入门大模型该如何快速上手?
    前言在AI技术日新月异的今天,大模型成为了引领科技浪潮的明星产品。它们凭借强大的数据处理能力和深度学习能力,正在改变着我们的工作和生活方式。对于初学者来说,如何快速上手大模型,成为了一个迫切而又具有挑战性的问题。前排提示,文末有大模型AGI-CSDN独家资料包哦!一、了......
  • Redis 入门使用
    第一步:下载安装redis服务端1.网盘地址: 链接:https://pan.baidu.com/s/1lUQMTSb1laFfoSbN9Z85lw?pwd=pvmd提取码:pvmd2.官网自行下载: https://redis.io/downloads/第二步:下载安装redis可视化管理工具1.网盘地址: 通过百度网盘分享的文件:redis-desktop-manager-0.8.8.3......
  • Python 入门-2
    1.函数输出函数:print 1.*values:表示可以一次性输出多个对象,输出多个对象时,需要用,隔开(英文逗号) 输出多个内容逗号隔开,英文符号 print('哈哈哈','嘻嘻嘻','嘿嘿嘿')2.sep:用来间隔多个对象,默认值是一个空格,可随意更换 print('哈哈哈','嘻嘻嘻','嘿嘿嘿',sep=',') sep......