AJAX学习笔记6 JQuery对AJAX进行封装

news2024/11/28 5:46:37

AJAX学习笔记5同步与异步理解_biubiubiu0706的博客-CSDN博客

AJAX请求相关的代码都是类似的,有很多重复的代码,这些重复的代码能不能不写,能不能封装一个工具类。要发送ajax请求的话,就直接调用这个工具类中的相关函数即可。 

用JS发送AJAX请求回顾

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AJAX发送GET POST</title>
</head>
<body>
<script type="text/javascript">
    window.onload=function (){
        document.getElementById("btn1").onclick=function(){
            var xhr=new XMLHttpRequest();
            xhr.onreadystatechange=function(){
                if(this.readyState==4){
                    if(this.status==200){
                        console.log("发送成功")
                    }
                }else{
                    console.log("得到错误响应")
                }
            }
            xhr.open("get","/xxxx",true)
            xhr.send()
        }
        document.getElementById("btn2").onclick=function(){
            var xhr=new XMLHttpRequest();
            xhr.onreadystatechange=function(){
                if(this.readyState==4){
                    if(this.status==200){
                        console.log("发送成功")
                    }
                }else{
                    console.log("得到错误响应")
                }
            }
            var username=document.getElementById("username").value
            xhr.open("get","/xxxx?username"+username,true)
            xhr.send()
        }

        document.getElementById("btn3").onclick=function(){
            var xhr=new XMLHttpRequest();
            xhr.onreadystatechange=function(){
                if(this.readyState==4){
                    if(this.status==200){
                        console.log("发送成功")
                    }
                }else{
                    console.log("得到错误响应")
                }
            }
            xhr.open("post","/xxxx"+username,true)
            xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

            var username2=document.getElementById("username2").value;
            xhr.send("username="+username2)
        }
    }
</script>

<button id="btn1">发送GET无参</button>

<button id="btn2">发送GRT有参</button>
<input type="text" id="username">

<button id="btn3">发送POST有参</button>
<input type="text" id="username2">
</body>
</html>

响应结果一般是个字符串    也有可能是responseXML   

一般现在都用JSON字符串

那么需要转成JS对象

JSON.parse(this.responseText)

使用JQuery工具类中的AJAX方法来发送请求

引入

$.ajax() 是 jQuery 提供的一个通用 AJAX 请求方法.

$.get()$.ajax() 方法的一个简化版本,专门用于发送 GET 请求。

$.post()$.ajax() 方法的一个简化版本,专门用于发送 POST 请求。

示例

$.get(url, [data], [callback])
$.get('http://www.liulongbin.top:3006/api/getbooks', function(res) {
    console.log(res) // 这里的 res 是服务器返回的数据
})

$.post(
   'http://www.liulongbin.top:3006/api/addbook', // 请求的URL地址
   { bookname: '水浒传', author: '施耐庵', publisher: '上海图书出版社' }, // 提交的数据
   function(res) { // 回调函数
      console.log(res)
   }
)

 

$.ajax()比较通过,可以发送put,delete请求  但是$.get()和$.post()是简化版,暂没有$.put和$.delete的写法

下面来完整的写几个示例

$.get()的写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JQuery发送AJAX请求</title>
</head>
<body>
<!--引入JQuery-->
<script type="text/javascript" src="ajax/js/jquery-3.4.1.js"></script>
<script type="text/javascript">
    $(function (){//页面加载完毕执行的函数    JQuery的写法  JS的写法--->window.onload=function(){}
        $("#btn1").click(function(){//JQuery写法    JS的写法  document.getElementById("btn1").onclick=function(){
            var username=$("#username").val()//var username=document.getElementById("username").value;
                //发送ajax请求
            $.get("/ajax/JQGET","username="+username,function(data){
                console.log(data)
                $("#div1").html(data)//原来的写法document.getElementById("div1").innerText=data
            })
        })
    })


</script>
<button id="btn1">发送AJAX GET请求</button><br>
用户名:<input type="text" id="username"><br>
<div id="div1"></div>
</body>
</html>

如果不想带参数,就把参数去掉

$.ajax()写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AJAX发送GET请求</title>
</head>
<body>
<script type="text/javascript" src="ajax/js/jquery-3.4.1.js"></script>
<script type="text/javascript">
    $(function(){
        //点击事件
        $("#btn1").click(function(){
            //发送AJAX请求
            $.ajax({
                type:"get",
                url:"/ajax/JQGET",
                data:"username="+$("#username").val(),
                async:true,
                success:function(data){
                    console.log(data)
                    $("#div1").html(data)
                }
            })
        })
    })
</script>
<button id="btn1">发送AJAX GET请求</button><br>
用户名:<input type="text" id="username"><br>
<div id="div1"></div>
</body>
</html>

后端随便返回点啥

发送$.post   无参请求

发送$.ajax()post有参数请求

注意

$.get()或者$.post() 方法默认发送的请求是异步的。

如果希望发送的请求可以改变同步或者异步   建议使用$.ajax()这种方式

用$.ajax()方式发送请求的示例

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

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

相关文章

jar包冲突: java.lang.NoSuchFieldError: REFLECTION

接入第三方时&#xff0c;导入了第三方的SDK&#xff0c;导致项目其他功能读取本地xml时出错&#xff0c;根据具体日志查看发现是具体某个jar包版本的问题 根据上图可看到&#xff0c;问题在com.sun.xml.bind包&#xff0c;于是根据便向着把我导入的SDK下所属的该jar过滤掉&am…

MySQL递归查询所有子集

在 MySQL 数据库中&#xff0c;WITH RECURSIVE 是递归查询的一种语法。然而&#xff0c;MySQL 并不支持 WITH RECURSIVE 语法。相反&#xff0c;MySQL 提供了另一种递归查询的方法&#xff0c;即使用 CONNECT BY 和 START WITH 语法。 如果您需要执行递归查询&#xff0c;建议…

C++多态虚析构和纯虚析构

虚析构和纯虚析构 多态使用时&#xff0c;如果子类中有属性开辟到堆区&#xff0c;那么父类指针在释放时无法调用子类的析构代码 注释&#xff1a;父类指针在释放时&#xff0c;只会调用父类自己的析构函数&#xff0c;而无法调用子类的析构函数 解决方式&#xff1a;将父类的…

诚实守信、专业严谨、合规自律、公开透明——嘉泰实业

每一次暖心的沟通都是一次公益,真诚不会因为它的渺小而被忽略;每一声问候都是一次公益,善意不会因为它的普通而被埋没。熟悉嘉泰实业的人都知道,这家企业不但擅长在金融理财领域里面呼风唤雨,同时也非常擅长在公益事业当中践行,属于企业的责任心,为更多有困难的群体带来大爱的传…

结构体的简单介绍(2)

目录 结构体的特殊声明 结构体的自引用 结构体的特殊声明 在声明结构的时候&#xff0c;可以不完全的声明。 比如&#xff1a; struct {int a;char b;float c; }x; 以上结构在声明的时候省略掉了结构体标签&#xff08;tag&#xff09;。 那么会有什么影响呢&#xff1f…

Qt CMake 中国象棋程序实现

前驱课程 C自学精简实践教程 目录(必读) C数据结构与算法实现&#xff08;目录&#xff09; Qt 入门实战教程&#xff08;目录&#xff09; 项目初衷 为学习 Qt 的人提供一个合适的有一定难度的综合型练习项目。 在学会写代码之前&#xff0c;先看别人怎么写的代码。深入…

计算机竞赛 基于深度学习的人脸性别年龄识别 - 图像识别 opencv

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…

基于Java+SpringBoot+Vue前后端分离论坛系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

2000-2022年上市公司融资约束指数(KZ、SA、FC和WW指数)(含原始数据、方法说明和计算结果)

2000-2022年上市公司融资约束指数&#xff08;KZ、SA和WW指数&#xff09;&#xff08;含原始数据和计算结果&#xff09; 1、时间跨度&#xff1a;2000-2022年 2、区域范围&#xff1a;沪深A股上市公司 3、指标说明&#xff1a; 证券代码、证券简称、统计截止日期、是否剔…

SSD202D-编译固件重启无法进入kernel

今天打包发现我的固件一直重启,我一直以为是没升级好; 然后根据log发现在进入kernel的时候挂掉了 汇编都暴出来了,这就很焦灼 我查看对比正常启动的log,boot一模一样,等了很久之后会有概率进系统 我要查看问题在哪里,搞得焦头烂额 1.我用以前的固件确认一下问题是不是在板…

高忆管理:证券账户国债逆回购怎么操作?

国债逆回购的本质就是一种短期贷款&#xff0c;个人经过国债回购商场把自己的资金借出去&#xff0c;取得固定的利息收益&#xff0c;那么&#xff0c;证券账户国债逆回购怎样操作&#xff1f;怎样在股票账户上买国债逆回购&#xff1f;下面高忆管理为我们准备了相关内容&#…

Editplus打开当前文件所在的文件夹

一个小技巧&#xff1a;Editplus打开当前文件所在的文件夹&#xff0c;备忘记录一下。 1、打开目录窗口 AltShift3&#xff0c;打开目录窗口&#xff08;Directory Window&#xff09;&#xff0c;这是开关键&#xff0c;再按一次会关闭目录窗口。 2、打开文件夹 在“目录窗…

git代码撤销回滚只看这一篇就足够了!

1. 代码撤销 目前大家都在使用git&#xff0c;在项目开发中&#xff0c;总会遇到提交的代码有问题&#xff0c;想要撤销回滚的操作&#xff0c;关于撤销回滚代码单独给大家介绍一下。   正常的提交代码如果要提交到远程仓库有下边3步命令&#xff1a; git add . ------------…

软件测试/测试开发丨Web自动化 测试用例流程设计

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/27173 一、测试用例通用结构回顾 1.1、现有测试用例存在的问题 可维护性差可读性差稳定性差 1.2、用例结构设计 测试用例的编排测试用例的项目结构 1…

RobotFramework自动化测试框架系列学习-----(一)简介、搭建、运行

一、简介 基于Python的关键字驱动的自动化框架。 1.基于Python&#xff1a;就是由python语言开发的这个框架。 2.关键字驱动&#xff1a;关键字驱动测试又称为表格驱动测试&#xff0c;是自动化测试的一种方法&#xff0c;是数据测试的一种改进方法。关键字驱动主要包括测试步骤…

利用vba处理Excel表格数据实现键值转化,适用于将编码转化成对应的文本

最近遇到了一个甲方需要提供系统登录的用户名单和对应的角色权限内容。无奈直接从数据库导出的数据对应的都是编码&#xff0c;没有转成中文&#xff0c;想着偷个懒能不能直接用Excel直接转&#xff0c;网上看了一下有修改单元格格式的&#xff0c;但需要编码是2到3个。多的就用…

HyperDock 1.8.0.10(Dock优化工具)

HyperDock 是一款为 macOS 设计的实用工具&#xff0c;它提供了许多方便快捷的功能&#xff0c;使您能够更高效地管理和操作应用程序窗口。 首先&#xff0c;HyperDock 提供了类似于 Windows 7 的任务栏预览功能。当您将鼠标悬停在应用程序图标上时&#xff0c;会显示该应用程…

C++入门基础知识总结(超详细思维导图)

开门见山 思维导图奉上 引用和指针的区别宏宏的优缺点 C中替代宏C和C的区别 &#xff01;&#xff01;&#xff01; 详细部分参考该博客&#xff1a;从C快速入门C (命名空间、引用、函数重载&#xff09; &#xff01;&#xff01;&#xff01; 引用和指针的区别 ● 引用就…

cin、cin.getline()、getline()的用法【C++】

一、cin>> 用法1&#xff1a;输入一个数字或字符 #include <iostream> using namespace std; int main () {int a,b;cin>>a>>b;cout<<ab<<endl;return 0; } 用法2&#xff1a;接收一个字符串&#xff0c;遇“空格”、“TAB”、“回车”…

气导耳机有哪些品牌?市面上气传导耳机哪家好?

​随着人们对运动健康的重视&#xff0c;越来越多的人开始关注运动时佩戴的耳机。然而&#xff0c;传统的耳机在运动时往往会受到限制&#xff0c;而气传导耳机则可以避免这些问题&#xff0c;为用户带来更加舒适和便捷的使用体验。今天就来展开说说&#xff0c;市面上气传导耳…