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

【ajax基础】

提示:文章为 学习过程中的记录实践笔记。有问题欢迎指正。

文章目录

  • 前言
  • 一、实现步骤
  • 二、完整示例
  • 三、封装
  • 总结


前言

AJAX 不是编程语言,是一种从网页访问web服务器的技术。

可以实现不刷新页面更新网页
在页面加载后从服务器请求/获取数据
在后台向服务器发送数据

AJAX 等价于 Asynchronous JavaScript And XML.


一、实现步骤

  1. 创建 XMR XMLHttpRequest()
 const xhr = new XMLHttpRequest();
  1. 配置请求 open(method,url,async,user,psw)

参数说明: 请求方式,请求地址,是否异步,可选的用户名,可选的密码

请求方式 method是否异步
GET,POST,PUT,DELETE 等true(异步) false(同步)
xhr.open('GET', 'http://localhost:5500/javascript/ajax/data.json')
  1. 发送请求 send()
xhr.send();
  1. 接收请求 - 定义接收到(加载)请求时调用的函数

onload 当请求完成时会被调用

xhr.onload = function(){
//处理返回值
}

onreadystatechange 当readyState属性发生变化时调用

二、完整示例

使用 onload 接收数据

在这里插入图片描述
使用 onreadystatechange

readyState 不同状态
0:请求未初始化
1:服务器连接已建立
2:请求已收到
3:正在处理请求
4:请求已完成且响应已就绪

xhr.onreadystatechange = function () {// console.log(xhr.readyState, xhr.status)// 接收状态码 4:解析完成  http状态码 200~299 都是正确的  常见 200if (xhr.readyState === 4 && xhr.status === 200) {console.log('数据解析完成', xhr.responseText)} else if (xhr.readyState === 4 && xhr.status === 404) {console.log('请求地址不存在')}
}

三、封装

//ajax.jsfunction ajax(option) {const options = {method: 'GET',url: '',data: '',success: function () { },//成功回调函数error: function () { },...option,}const xhr = new XMLHttpRequest();const method = options.method.toUpperCase();const url = options.url;let data = null;if (option.data) {data = Object.keys(options.data).map(key => key = options.data[key]).join('&');}if (method === 'GET' && data) {url += '?' + data;}xhr.open(method, url);if (method === 'POST') {xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');}xhr.onreadystatechange = function () {if (xhr.readyState === 4) {if (xhr.status >= 200 && xhr.status < 300) {const response = xhr.getResponseHeader('Content-Type').includes('json') ? JSON.parse(xhr.responseText) : xhr.responseText;options.success && options.success(response);} else {options.error && options.error(xhr.status);}}};xhr.send(method === 'POST' ? data : null);
}
export default ajax;

调用封装

在这里插入图片描述

总结

通俗的说,就像是拨打电话,

  1. 首先要拿起电话new XMLHttpRequest()
  2. 打开通讯录拨号/查看通讯录 open(method,url)\
  3. 点击拨打 send()
  4. 等待接通 onreadystatechange || 接通后 onload

相关文章:

  • openjdk底层汇编指令调用(一)——汇编指令及指令编码基础
  • 设计模式之工厂模式(二):实际案例
  • 医院药品管理系统(准备工作)
  • 『 测试 』测试基础
  • [Java实战]Spring Boot 整合 Thymeleaf (十)
  • 经典工具箱、常见工具、软件合集【免费无广告】
  • openharmony系统移植之gpu mesa3d适配
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十六)
  • 语音合成之十三 中文文本归一化在现代语音合成系统中的应用与实践
  • MySQL索引详解(下)(SQL性能分析,索引使用)
  • Baklib内容管理平台的核心组成是什么?
  • Go语言安装proto并且使用gRPC服务(2025最新WINDOWS系统)
  • Babel 基础使用指南:从安装到编译的完整流程
  • 操作系统: 第三章节 :中断和处理机调度
  • Python Day 22 学习
  • 基于Dify实现对Excel的数据分析
  • 容器技术 20 年:颠覆、重构与重塑软件世界的力量
  • 每日一题洛谷P8615 [蓝桥杯 2014 国 C] 拼接平方数c++
  • jna总结1
  • CSS 盒子模型与元素定位
  • 央媒评网红质疑胖东来玉石定价暴利:对碰瓷式维权不能姑息
  • 因操纵乙烯价格再遭诉讼,科莱恩等四家企业被陶氏索赔60亿
  • 郑培凯:汤显祖的“至情”与罗汝芳的“赤子之心”
  • 习近平出席中拉论坛第四届部长级会议开幕式并发表主旨讲话
  • 商务部新闻发言人就中美日内瓦经贸会谈联合声明发表谈话
  • 从采购到销售!市场监管总局指导行业协会防控肉品风险