前端学习--Ajax(1) get/post

news2024/11/20 0:38:42

一、客户端和服务器

上网的目的:借助互联网获取和消费资源

1.1 服务器

负责存放和对外提供资源的计算机

1.2 客户端

负责获取和消费资源的计算机

二、URL地址

2.1 概念

Uniform Resource Locator 中文叫统一资源定位符,标识互联网上每一个资源的存放位置

浏览器通过URL定位资源的存放位置,从而访问资源

2.2 组成

  1. 客户端与服务器的通信协议
  2. 存有该资源的服务器名称
  3. 资源在服务器上存放的具体位置‘

三、客户端与服务器的通信过程

3.1 请求--处理--响应 

3.2 基于浏览器的开发者工具分析通信过程

四、服务器提供的资源

4.1 资源类型

文字、图片、视频、音频

数据是网页的灵魂

4.2 请求数据

XMLHttpRequest对象,请求服务器上的数据资源

4.3 请求方式

get -- 获取服务器资源

post -- 向服务器提交数据

五、Ajax

5.1 概念

利用XMLHttpRequest对象和服务器进行交互的方式

5.2 应用场景

  • 用户名重复检测
  • 搜索提示,动态加载搜索数据提示列表
  • 数据分页显示
  • 数据增删改查

六、jQuery中的Ajax

6.1 概念

jQuery对Ajax进行封装,屏蔽了不同浏览器之间的兼容性,降低Ajax使用难度 

 6.2 $.get()

$.get(url[, data[, callback]])
//url string 请求的资源地址
//data object 请求资源期间携带的参数
//callback 请求成功的回调函数
    //不带参数的get请求
    <button id="btnGET">发起get请求</button>
    <script src="../lib/jquery.js"></script>
    <script>
        $(function(){
            $('#btnGET').on('click',function(){
                $.get('http://www.liulongbin.top:3006/api/getbooks',function(res){
                    console.log(res)
                })
            })
        })
    </script>
    
    //带参数的get请求
    <button id="btnGETInfo">发起get请求</button>
    <script src="../lib/jquery.js"></script>
    <script>
        $(function(){ //当dom元素被创建在script语句下面时要用到入口函数
            $('#btnGETInfo').on('click',function(){
                $.get('http://www.liulongbin.top:3006/api/getbooks',{id:1},function(res){
                    console.log(res)
                })
            })
        })
    </script>

 6.3 $.post()

$.post(url[, data[, callback]])
//url string 提交的资源地址
//data object 提交的数据
//callback 提交成功的回调函数
    <button id="btnPOST">发起post请求</button>
    <script src="../lib/jquery.js"></script>
    <script>
        $(function(){ //当dom元素被创建在script语句下面时要用到入口函数
            $('#btnPOST').on('click',function(){
                $.post('http://www.liulongbin.top:3006/api/addbook',{bookname:'2023日记',author:'august',publisher:'八月洋槐出版社'},function(res){
                    console.log(res)
                })
            })
        })
    </script>

 6.4 $.ajax()

功能更加综合

$.ajax({
    type: '', //请求方式 get/post
    url: '',
    data: '', //请求携带的数据
    success: function(res){ } //请求之后的回调函数
})

七、接口

7.1 概念

被请求的url就是数据接口,每个接口必须有请求方式

7.2 接口测试工具PostMan 

7.3 接口文档

接口的调用依据

案例-图书管理

css是自己写的

<!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>Document</title>
    <link rel="stylesheet" href="./css/04-index.css">
</head>
<body>
    <div class="header">
        <div class="title">
            <h3>添加新图书</h3>
        </div>
        <div class="form">
            <ul>
                <li>
                    <span>书名</span>
                    <input id="bookname" type="text" placeholder="  请输入书名">
                </li>
                <li>
                    <span>作者</span>
                    <input id="author" type="text" placeholder="  请输入作者">
                </li>
                <li>
                    <span>出版社</span>
                    <input id="publisher" type="text" placeholder="  请输入出版社">
                </li>
            </ul>
            <button id="add">添加</button>
        </div>
    </div>
    <div class="body">
        <table border="1">
            <thead>
                <tr>
                    <th>id</th>
                    <th>书名</th>
                    <th>作者</th>
                    <th>出版社</th>
                    <th>操作</th>
                </tr>
             </thead>
             <tbody>
                <tr>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
             </tbody>
        </table>
    </div>
    <script src="../lib/jquery.js"></script>
    <script>
        const tbody = document.querySelector('.body tbody')
        function getBookList(){
            $.get('http://www.liulongbin.top:3006/api/getbooks',function(res){
                if(res.status !== 200)return alert('获取列表失败!')
                console.log(res)
                let rows = []
                $.each(res.data, function(i,item){
                    rows.push(`<tr>
                                <td>${item.id}</td>
                                <td>${item.bookname}</td>
                                <td>${item.author}</td>
                                <td>${item.publisher}</td>
                                <td><a href="javascript:;">删除</a></td>
                            </tr>`)
                })
                tbody.innerHTML = rows.join('')
            })
        }
        getBookList()

        //删除图书
        $('tbody').on('click', 'a', function() {
            let id = this.parentNode.parentNode.children[0].innerHTML
            $.ajax({
                type: 'GET',
                url: 'http://www.liulongbin.top:3006/api/delbook',
                data: { id: id },
                success: function(res) {
                    if (res.status !== 200) return alert(res.msg) 
                    getBookList()
                }
            })
        })

        //添加图书
        $('.form').on('click', '#add', function() {
            let bookname = $('#bookname').val()
            let author = $('#author').val()
            let publisher = $('#publisher').val()
            if (bookname === '' || author === '' || publisher === '') {
                return alert('请完整填写图书信息!')
            }
            $.post(
                'http://www.liulongbin.top:3006/api/addbook',
                { bookname: bookname, author: author, publisher: publisher },
                function(res) {
                    if (res.status !== 201) return alert(res.msg)
                    getBookList() // 4. 添加成功后,刷新图书列表
                    $('input:text').val('') // 5. 清空文本框内容
                }
            )
        })

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

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

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

相关文章

(3)相关概念和索引的CURD

核心概念 https://www.elastic.co/guide/en/elasticsearch/reference/7.10/index.html 什么是搜索引擎&#xff1f; 全文搜索引擎 自然语言处理&#xff08;NLP&#xff09;、爬虫、网页处理、大数据处理。如谷歌、百度、搜狗、必应等等。 垂直搜索引擎 有明确搜索目的的…

脉诊在现代医学中的应用与局限性

目录 一、脉诊在疾病诊断中的作用及局限性 二、现代脉诊仪的可靠性 三、中医在现代医学中的地位 四、中西医结合的发展趋势 结论 一、脉诊在疾病诊断中的作用及局限性 脉诊作为中医诊断的重要方法之一&#xff0c;通过检测脉搏波的特征来了解患者的身体状况&#xff0c;进…

学习笔记:《Foundation models for generalist medical artificial intelligence》

目录 一、GMAI模型的概念与优势 二、GMAI模型面临的挑战 1.验证 2.社会偏见 3.隐私 4.规模 5.技术挑战 三、结论&#xff1a; 参考文献 最近在《Nature》杂志上发表的一篇名为《Foundation models for generalist medical artificial intelligence》的文章&#xff0c…

品牌如何借助江湖老大“音乐记忆”做宣传?

去年有个卖咖啡的小姐姐火了&#xff0c;“咖啡你冲不冲&#xff0c;冲冲冲冲冲”节奏分明、及其洗脑&#xff0c;引发众多网友模仿和音频采用。 其实这种借用音乐记忆扩大品牌知名度和传播范围的品宣手段十分常见&#xff0c;仔细回想一下&#xff0c;我们平时听到较为魔性的…

05-Node.js—http模块

目录 1、HTTP 协议1.1 概念1.2 请求报文的组成1.3 HTTP 的请求行1.4 HTTP 请求头1.5 HTTP 的请求体1.6 响应报文的组成 2、创建 HTTP 服务2.1 操作步骤2.2 测试2.3 注意事项 3、获取 HTTP 请求报文3.1 请求方法 request.method3.2 请求版本 request.httpVersion3.3 请求路径 re…

基本绘图函数

基本绘图函数 cv2.line()函数------用于绘制直线. 算子解释&#xff1a; cv2.line(img1, (20, 80), (120, 80), (0, 255, 255))cv2.line(img, pt1, pt2, color, thicknessNone, lineTypeNone, shiftNone) img&#xff1a;背景图。 pt1&#xff1a;直线起点坐标。 pt2&#x…

实战详解docker安装步骤——Linux操作系统(CentOS7.9)下安装容器技术docker引擎

一、安装docker依赖环境 yum install -y yum-utils device-mapper-persistent-data lvm2二、配置国内docker-ce的yum源 &#xff08;这里采用的是阿里云镜像配置文件&#xff09; yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-c…

基于java Springboot+Vue+shiro前后端分离疫情防疫管理系统设计和实现2.0

基于java SpringbootVueshiro前后端分离疫情防疫管理系统设计和实现2.0 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获…

老板们搞怪营业,品牌好感度upup真有梗

老板下场营业最经典的莫过于“老乡鸡”了。在手撕联名信事件出圈后&#xff0c;老乡鸡围绕束从轩创始人IP&#xff0c;开展了一系列社交传播宣传&#xff0c;比如“咯咯哒糊弄学”等。 50多岁的老乡鸡董事长束从轩&#xff0c;一改传统企业家严肃正经的形象&#xff0c;跟着老乡…

Pytorch深度学习笔记(九)加载数据集

目录 1.名词解释 2. 数据集加载器Dataloader 3.完整代码 推荐课程&#xff1a;08.加载数据集_哔哩哔哩_bilibili 1.名词解释 名词解释&#xff1a;Epoch&#xff0c;Batch&#xff0c;Batch-Size&#xff0c;Iterations Epoch&#xff08;周期&#xff09;&#xff1a;指所…

职工管理系统(C++)

职工管理系统有以下8个功能&#xff1a; - 增加职工信息&#xff1a;实现批量添加职工功能&#xff0c;将信息录入到文件中&#xff0c;职工信息为&#xff1a;职工编号、姓名、部门编号 - 显示职工信息&#xff1a;显示公司内部所有职工的信息 - 删除离职职工&#xff1a;按照…

java防止重复提交的方法

为了防止重复提交&#xff0c;可以采用以下几种方法&#xff1a; 1. 令牌机制&#xff08;Token&#xff09; 在表单中添加一个隐藏字段&#xff0c;用于存放一个随机生成的令牌&#xff08;Token&#xff09;。当用户提交表单时&#xff0c;将令牌一起提交到服务器。服务器接收…

Win10系统重装过程(一键装机)

相信不少小伙伴都有刷机重装系统的过程&#xff0c;那种镜像&#xff0c;up盘&#xff0c;压缩包等多个复杂过程也折磨的大伙不堪重负&#xff0c;因此本期带来简易版一键装机相应操作。 下载地址&#xff1a; 小心点击下方链接&#xff0c;点击即下载&#xff08;3.66GB&…

SAM:图像分割的里程碑

Facebook的新模型称为SAM或Segment Anything Model&#xff0c;具有在计算机视觉行业中引起积极变革的潜力。这个突破性模型不同于以前使用的任何其他图像分割模型。 传统上&#xff0c;会为不同类型的图像&#xff0c;如人或汽车&#xff0c;分别训练不同的模型&#xff0c;但…

成功上岸国防科大!

Datawhale干货 作者&#xff1a;王洲烽&#xff0c;太原理工大学&#xff0c;Datawhale成员 写在前面 相比较于一般的经验贴&#xff0c;我更想在这里讲述一下自己的故事。我一开始报考的是北理工&#xff0c;但很遗憾9月份北理改考408了&#xff0c;无缘京爷&#xff0c;所以…

路径规划 | 图解概率路图PRM原理及其参数分析

目录 0 专栏介绍1 基于采样的规划算法2 概率路图基本原理3 PRM算法流程4 PRM参数分析4.1 采样点数4.2 阈值 d max ⁡ \mathrm{d}_{\max} dmax​ 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全局规划…

nginx简单介绍

文章目录 1. 下载并解压2. 80端口被占用&#xff0c;更改nginx默认的监听端口3. 访问nginx4. 在linux上安装nginx5. nginx常用命令6. nginx.conf 1. 下载并解压 官网下载 2. 80端口被占用&#xff0c;更改nginx默认的监听端口 更改conf/nginx.conf文件 3. 访问nginx ht…

[译] 实战 React 18 中的 Suspense

> 原文&#xff1a;https://dev.to/darkmavis1980/a-practical-example-of-suspense-in-react-18-3lln React 18 带来了很多变化&#xff0c;它不会破坏你已经编写过的代码&#xff0c;并且有很多改进和一些新概念。 它也让很多开发人员&#xff0c;包括我&#xff0c;意识到…

vue---mixin混入

一个混入对象可以包含任意组件选项&#xff08;如data、methods、created、mounted等等&#xff09;。当组件使用混入对象时&#xff0c;所有混入对象的选项将被“混合”进入该组件本身的选项。 我们可以使用混入&#xff0c;向组件注入自定义的行为。 和组件注册和指令一样 vu…

Oracle Linux 9 上基于 CRI-O 安装 Kubernetes 1.27 集群

Oracle Linux 9 上基于 CRI-O 安装 Kubernetes 1.27 集群 1. 禁用 swap2. 禁用防火墙3. 将 SELinux 设置为 permissive 模式4. 安装cri-o5. 安装kubelet kubeadm kubectl6. 更新模块设置7. 初始化Kubernetes集群8. 配置集群访问9. 安装网络插件10. 验证集群 1. 禁用 swap sudo…