当前位置: 首页 > news >正文

前端(AJAX)学习笔记(CLASS 3):AJAX原理

1、XMLHttpRequest

定义:XHR对象用于与服务器交互

关系:axios内部采用XHR与服务器交互

步骤:

1、创建XMLHttpRequest对象

2、配置请求方法和请求url地址

3、监听loadend事件,接受响应结果

4、发起请求

        const xhr=new XMLHttpRequest()
        xhr.open('请求方法','请求url网址')
        xhr.addEventListener('loadend',() => {
            //响应结果
            console.log(xhr.response)
        })
        xhr.send()

查询参数

定义:浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据

语法:http://xxx.com/xxx/xxx?参数名1=值1&参数名2=值2

如果需要拼接多个参数

        // 1、创建URLSearchParams对象
        const paramsObj=new URLSearchParams({
            参数名1:值1,
            参数名2:值2
        })
        // 2、生成指定格式查询参数字符串
        const queryString=paramsObj.toString()

数据提交:

需求:通过XHR提交用户名和密码,完成注册功能

核心:

请求头设置Content-Type:application/json

请求体携带JSON字符串

        const xhr=new XMLHttpRequest()
        xhr.open('请求方法','请求url网址')
        xhr.addEventListener('loadend',() => {
            console.log(xhr.response)
        })

        xhr.setRequestHeader('Content-Type','application/json')
        const user={username:'xxgz',password:'8888'}
        const userStr=JSON.stringify(user)
        xhr.send(userStr)

2、Promise

定义:Promise对象用于表示一个异步操作的最终完成(或失败)及其结果值

好处:

1、逻辑更清晰

2、了解axios函数内部运作机制

3、能解决回调函数地狱问题

        const p=new Promise((resolve,reject) => {
            // 执行异步任务并传递结果
            // 成功调用:resolve(值)触发then()执行
            // 失败调用:reject(值)触发catch()执行
        })
        p.then(result =>{

        }).catch(error =>{
            
        })

Promise三种状态

概念:一个Promise对象,必然处于以下几种状态之一

待定(pending):初始状态,既没有被兑现,也没有被拒绝

已兑现(fulfilled):意味着,操作成功完成

已拒绝(rejected):意味着,操作失败

注意:Promise对象一旦被兑现或拒绝,状态无法再改变

相关文章:

  • 2025年度福建省职业院校技能大赛中职组“网络建设与运维”赛项规程模块三
  • 从Revit建模软件的“编辑”操作分析:构件与编辑 = 数据结构与算法
  • 【排版教程】如何在Word/WPS中优雅的插入参考文献
  • 鸿蒙-做一个简版的富文本解析控件
  • Docker+Kubernetes_第一章_Docker入门
  • Spring Boot文件上传
  • 设备树及gpio子系统及ioctl控制及字符设备驱动及内核模块编程事项仨LED灯说点就点说灭就灭
  • 计算机原理第三章——存储器(未完善
  • 计算机网络面试知识点总结
  • 一文说清楚编码、摘要、加密、公钥、私钥、解密、签名、验签
  • 具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)
  • docker基操
  • Unity游戏制作中的C#基础(4)数组声明和使用
  • Python 高级特性-迭代
  • 写大论文的word版本格式整理,实现自动生成目录、参考文献序号、公式序号、图表序号
  • Orange 单体架构 - 快速启动
  • VMware Workstation安装Windows10
  • Linux下基本指令(4)
  • android系统SystemServer进程启动流程分析
  • 002 SpringCloudAlibaba整合 - Feign远程调用、Loadbalancer负载均衡
  • 外交部:巴基斯坦副总理兼外长达尔5月19日至21日访华
  • 加快推进科技服务业高质量发展,九部门联合发文
  • 国家统计局:1-4月份,全国固定资产投资同比增长4.0%
  • 国家统计局:4月份各线城市商品住宅销售价格环比持平或略降
  • 建筑瞭望|从黄浦江畔趸船改造看航运设施的升级与利用
  • 纽约市长称墨海军帆船撞桥已致2人死亡,撞桥前船只疑似失去动力