前端学习之Ajax(二)

2023-11-11

1、核心方法

首先对知识进行一下回顾:
1.创建一个XMLHttpRequest对象
2.准备发送请求的数据:URL
3.调用XMLHttpRequest对象的open方法
4.调用XMLHttpRequest对象的send方法
5.为XMLHttpRequest对象添加onreadystatechange相应函数
6.判断响应是否完成:XMLHttpRequest对象的readystate属性值为4的时候
7.再判断响应是否可用:XMLHttpRequest对象的status属性为200
8.打印相应结果:responseText

2、XMLHttpRequest 2.0

  1. onload / onprogress
var xhr = new XMLHttpRequest()
xhr.open('GET', './time.php')
xhr.onload = function () {
    // onload readyState === 4
    console.log(this.readyState)
}
xhr.onprogress = function () {
    // onload readyState === 3
    console.log(this.readyState)
}
xhr.send(null)

2.FormData
以前 AJAX 只能提交字符串,现在可以提交 二进制 的数据

3、axios的使用

<script src="lib/axios.min.js"></script>
    <button onclick="getData()">发起请求</button>
    <script>
        function getData(){
            // axios({
            //     method:'get',
            //     url:'http://localhost:5500?username=tom&pwd=123456'
            //     // data:{
            //     //     username:'tom',
            //     //     pwd:"123456"
            //     // }
            // }).then(res=>{
            //     console.log(res.data);//取出数据
            // }).catch(err=>{
            //     console.log(err);
            // });
            //post
            axios({
                method:'POST',
                url:'http://localhost:5500/login',
                data:{
                    username:'tom',
                    pwd:"123456"
                }
            }).then(res=>{
                console.log(res.data);//取出数据
            }).catch(err=>{
                console.log(err);
            });
        }
    </script>

既然提到了axios那就把原生ajax和jQuery.ajax也分别类举出来做下比较

<button onclick="getData()">GET</button>
    <button onclick="postData()">POST</button>
    <script src="lib/jquery.min.js"></script>
    <script>
        let baseUrl="http://localhost:5000";
        function getData(){
            // $.ajax(baseUrl,{
            //     //成功时回调
            //     success:function(data){
            //         console.log(data);
            //     },
            //     //失败时回调
            //     error:function(err){
            //         console.log(err);
            //     }
            // });

            //get 有参数
            $.ajax({
                type:"GET",
                url:baseUrl,
                data:"username=jack",
                success:function(data){
                    console.log(data);
                }
            });
        }

//post
        function postData(){
            // $.ajax({
            //     type:"POST",
            //     url:baseUrl,
            //     success:function(data){
            //         console.log(data);
            //     }
            // });

           var nn= $.ajax({
                type:"POST",
                url:`${baseUrl}/login`,
                data:"username=jack",
                success:function(data){
                    console.log(data);
                }
            });

        }
    </script>

这里类举一下对ajax进行Promise式的封装

<script>
function ajaxPromise(method, url, parms) {
    return new Promise(function (resolve, reject) {
        var xhr = new XMLHttpRequest();
        method = method.toUpperCase();//转换为大写
        //GET并且有参数
        if (method === "GET" && parms != undefined) {
            // xhr.open(method,url,true);
            url = url + "?" + parms;
        }
        xhr.open(method, url, true);
        if (method == "POST" && parms != undefined) {
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            xhr.send(parms);
        } else {
            xhr.send(null);
        }
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                resolve(xhr.responseText);
            }
        };
    });
}
ajax('POST',url,data).then(function(data){
            console.log(data);
        });
</script>

以上就是ajax的常用方式,在上一次的文章中提到了解决跨域的问题,除了之前所叙述的两种方式之外还有一种方式就是中转服务器,对于中转服务器的介绍放在了node.JS中来进行。
文章链接:node.js之中转服务器

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端学习之Ajax(二) 的相关文章

  • JS 库请求的常见 HTTP 标头是什么?

    使用JavaScript 框架原型 http www prototypejs org 我注意到 Ajax 请求通过一个名为X Requested With 其他 JavaScript 库 如 jQuery dojo 和 YUI 是否会向其
  • 使用 jQuery 更改 CSS 类属性

    有没有办法使用 jQuery 更改 CSS 类的属性 而不是元素属性 这是一个实际的例子 我有一个 div 类red red background red 我想转班级red背景属性 而不是具有类的元素red分配的背景 如果我用 jQuery
  • json_encode 创建格式错误的 JSON 数据?

    我有一个 codeigniter 应用程序将一些数据从数据库返回到视图 我正在尝试将其作为 json 数据发送回来 问题是返回的数据格式错误 它看起来像这样 2 5 Admin1 2 10 Admin2 当我在 jsonlint com 上
  • 将字符串从 Struts2 操作返回到 jQuery [重复]

    这个问题在这里已经有答案了 我使用 jQuery Ajax 调用 Struts2 操作 如下所示 ajax url callAction action type POST data data dataType string success
  • JSONP 使用 JQuery 从 HTTPS 协议获取 JSON

    我正在尝试获取从 https 安全站点发送的 JSON 客户端希望不要使用任何服务器端语言 全部都是 Javascript 我读到 当使用 Jquery 中的 ajax 函数时 我必须使用 JSONP 才能从安全站点加载 JSON 我的第一
  • 将列名称与具有 AJAX 数据源的 DataTable 一起使用

    我正在尝试升级我的系统以使用 DataTables 1 10 而不是 1 9 并且我正在尝试找到一种使用 JSON 对象而不是列表传回行内容的方法 具体来说 而不是以格式传回数据 data data data data data data
  • Rails 4 使用 ajax、jquery、:remote => true 和 respond_to 渲染部分

    使用 AJAX 动态渲染页面以响应提交的表单似乎很常见 其他类似的问题都没有集中于如何以一般方式做到这一点 我能找到的关于这个主题的最好的博客文章在这里 http www gotealeaf com blog the detailed gu
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • 谷歌地图 v3 API 鼠标悬停在多边形上?

    我正在使用 google v3 api 构建地图 因为它更快 本质上 它是一张包含约 30 个城市的区域地图 这些区域上有多边形 当用户将鼠标悬停在城市上时 我希望 fillColor 变亮 然后在鼠标移开时返回到正常状态 当用户单击时 它
  • jQuery / Ajax:如何循环遍历数组作为 Ajax 成功函数的一部分

    我有一个阿贾克斯调用返回一个数组并需要对该数组中的每个值执行某些操作 到目前为止 我有以下内容 但这会返回以下错误 Uncaught TypeError Cannot use in operator to search for length
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • 如何处理 ASP.net MVC Ajax 加载页面上的 jQuery 事件?

    我有一个问题 我是 jQuery Mobile 领域的新手 对于 ASP Net MVC 部分我有点迷失 这是我的问题 在我的移动网站中 我想更改导航栏 我使用的更像是应用程序栏 按钮 而我位于编辑页面或主页等 因此 这些页面 编辑 显示
  • 是否可以禁用特定 jQuery Ajax 调用的 Turbolinks 以防止页面刷新和滚动?

    我有一个 Rails 5 应用程序 非常想使用 Turbolinks 在应用程序中 有几个 PATCH ajax 调用 它们只是用新数据更新服务器 但不需要担心更新页面的状态 每当这些 ajax 请求返回时 Turbolinks 就会刷新页
  • Jquery ajax请求,等待最新请求完成

    我有一个文本框 每次用户输入一个字母时 我都会使用 ajax 请求进行搜索 并为用户 实时 显示结果 通常 当用户键入字母时 发出请求所需的时间比用户输入新字母所需的时间更长 因此在第一个请求结束之前发出新请求 如果第一个请求能够在我执行下
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li
  • 如果验证失败,如何在 ASP.NET MVC 中阻止 jquery ajax 提交

    我在用ASP NET 5 MVC RC1 我的 ASP NET MVC 使用的 jquery 验证插件是默认 ASP NET 5 模板项目使用的标准 jquery validate js jQuery Validation Plugin v
  • Ajax调用完成后执行函数

    我是 Ajax 新手 我尝试在使用 for 循环时使用 Ajax Ajax 调用之后 我正在运行一个使用 Ajax 调用中创建的变量的函数 该函数只执行两次 我认为 Ajax 调用可能没有足够的时间在循环开始之前进行调用 有没有办法在运行

随机推荐

  • 互联网摸鱼日报(2023-04-30)

    互联网摸鱼日报 2023 04 30 InfoQ 热门话题 被ChatGPT带火的大模型 如何实际在各行业落地 Service Mesh的未来在于网络 百度 Prometheus 大规模业务监控实战 软件技术栈商品化 应用优先的云服务如何改
  • 【Selenium】获取属性

    文章目录 1 获取窗体属性 1 1 获取网页标题 1 2 获取网址 1 3 获取浏览器名称 1 4 获取网页源码 2 获取元素属性 2 1 获取元素的文本内容 2 2 获取元素属性 2 3 获取其他属性 1 获取窗体属性 1 1 获取网页标
  • 深度学习笔记二:多层感知机(MLP)与神经网络结构

    为了尽量能形成系统的体系 作为最基本的入门的知识 请参考一下之前的两篇博客 神经网络 一 概念 神经网络 二 感知机 上面的两篇博客让你形成对于神经网络最感性的理解 有些看不懂的直接忽略就行 最基本的符号的记法应该要会 后面会用到一这两篇博
  • SpringBoot整合SpringSecurity认证与授权

    唠嗑部分 在项目开发中 权限认证是很重要的 尤其是一些管理类的系统 对于权限要求更为严格 那么在Java开发中 常用的权限框架有哪些呢 推荐的有两种 Shiro 与 SpringSecurity 当然也可以结合切面自己实现 Shiro是Ap
  • 算法分析与设计编程题 递归与分治策略

    棋盘覆盖 题目描述 解题代码 para 棋盘 行偏移 列偏移 特殊行 特殊列 void dividedCovering vector
  • BifroMQ:五分钟了解百度开源旗下消息中间件

    BifroMQ 并不是一个独立的公司 而是由一家名为 Bifrost 的公司开发的一款产品 Bifrost 公司成立于 2014 年 总部位于中国北京 是一家专注于开源技术的公司 当时 Bifrost 公司的创始人陈明发起了开源项目 iPr
  • 一步步开发自己的OS操作系统

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 以MSP430单片机为例控制4个灯以不同频率闪烁 把原理搞清楚了一通则百通 可以举一返三 注 以下所讲的堆栈即栈 因为堆栈说习惯了 堆是堆栈是栈 MSP430有16个寄存器
  • 关于linux服务器上生成的图片中文字为的乱码问题

    一 功能描述 linux服务器后端生成图表 使用了canvas和echarts 并将生成的图片发送到企业微信群里 二 出现的问题 生成的图表中文展示不出来 是乱码 错误图表展示如下 三 文字乱码出现的原因 linux服务器没有对应的文字 四
  • mysql删除以什么开头的数据_Mysql如何删除以“#sql-”开头的临时表

    MySQL如何删除以 sql 开头的临时表 现象 在重建索引后 发现Mysql服务器的磁盘空间快满了 在用如下命令重建索引 mysql gt alter table skatetab add unique index id uid drop
  • java agentlib jdwp,JDWP无依赖攻击

    JDWP JDWP 是 Java Debug Wire Protocol 的缩写 在JPDA Java Platform Debugger Architecture 中 它定义了调试器 debugger 和被调试的 Java 虚拟机 tar
  • LevelHelper-NG

    LevelHelper 的克隆 放在 github上 自取 放一张谍照 Qt4 8 4 vs2010
  • 一些简单的变量以及C语言的基本格式

    一些比较关键的操作 枚举关键 enum MALE REMALE SECRET叫做枚举变量 scanf是C语言提供的 scanf 不是标准C语言提供的而是VS编译器提供的 尽量不要使用会使程序失去可移植性 define CRT SECURE
  • 空时自适应处理用于机载雷达——空时处理基础知识(Matla代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 机载阵列雷达信号环境 2 2 空时处理基础知识 2 3 元素空间空时自适应处理 2
  • 一文了解游戏美术开发流程,以及可能遇到的问题

    想了解典型的游戏资产开发工作流吗 一个团队的游戏美术流程取决于几个因素 包括游戏开发工作室类型 正在开发的游戏类型和开发团队成员的数量等 继续往下阅读 你能了解游戏美术开发流程 所使用的工具 以及可能出现的问题 什么是游戏资产工作流 游戏资
  • windows10内置的Ubuntu系统 开启浏览器界面,安装Xming

    1 安装Xming 2 安装完直接打开 Xming 即可 3 安装一个firefox测试 apt get install firefox 4 运行 在程序指令前加上 DISPLAY 0 DISPLAY 0 firefox 5 简化配置 每次
  • 利用栈来完成表达式求值

    利用栈来完成表达式求值 一个表达式要求值 分为操作数部分和运算符部分 求值的过程便是运算符对操作数进行操作 首先我们定义两个栈 一个栈存放运算符 先放个 进去 代表开始 然后记得结束最后一个字符也是 这样代表结束 然后建立一个栈存放操作数
  • 提车自检手册(3系,其他车辆类似)

    一 检查铭牌 1 检查铭牌车辆生产日期 大于半年pass 玻璃 大灯 轮胎的生产日期不得大于车辆生产日期 二 检查轮胎 1 是否全部为米其林轮胎 zp 4 防爆胎 2 检查全部轮胎日期 4个数字 后俩位年份 前俩位第几周 三 检查玻璃 1
  • 下载百度地图瓦片的方法

    为什么80 的码农都做不了架构师 gt gt gt 续上篇 Web版百度地图加载离线瓦片 本文贴出下载瓦片的简易程序 百度地图瓦片的下载其实很容易 拿到下载链接然后批量下载就行了 不过由于需要按照规则来存储 最好自己写个程序去下载这些链接
  • linux系统中的iscsi网络磁盘共享及其卸载

    什么是ISCSI ISCSI主要是透过TCP IP技术 将存储设备端透过iscsi target iscsi 目标端 功能 做成可以提供磁盘的服务器端 再透过iscsi initiator iscsi初始化用户 功能 做成能够挂载使用使用i
  • 前端学习之Ajax(二)

    1 核心方法 首先对知识进行一下回顾 1 创建一个XMLHttpRequest对象 2 准备发送请求的数据 URL 3 调用XMLHttpRequest对象的open方法 4 调用XMLHttpRequest对象的send方法 5 为XML