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

【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
http://www.xdnf.cn/news/5292.html

相关文章:

  • 深入理解深度Q网络DQN:基于python从零实现
  • OB Cloud 云数据库V4.3:SQL +AI全新体验
  • redis主从同步于对象模型
  • 【基于 LangChain 的异步天气查询2】GeoNames实现地区实时气温查询
  • EDITPLUS配置CTags实现函数跳转
  • 技术方案模型需要兼顾战略规划、技术实现与落地可行性
  • 《操作系统真象还原》第十三章——编写硬盘驱动程序
  • SQL注入问题
  • powerbuilder9.0中文版
  • 7、系统开发
  • 计算机网络 4-2-1 网络层(IPv4)
  • 每日算法-250510
  • 深入理解Embedding技术-什么是Embedding?
  • 使用fdisk 、gdisk管理分区
  • Satori:元动作 + 内建搜索机制,让大模型实现超级推理能力
  • python:ASCII-generator 实用教程
  • $\int_{0}^{1} x \arcsin \sqrt{4x - 4x^2}dx$
  • LintCode第366题-斐波那契数列
  • 各种环境测试
  • 解释器和基于规则的系统比较
  • 【Linux基础】文件和目录管理指令
  • 对日开发 TeraTerm ttl脚本开发环境配置
  • python04——条件判断(选择结构)
  • 部署RocketMQ
  • 数孪实战笔记(1)数字孪生的含义、应用及技术体系
  • java-代理
  • [特殊字符] AI网关:大模型时代的智能交通指挥官 [特殊字符]
  • 科大讯飞TTS(文字转语音)和STT(语音转文字)
  • 如何将 Windows 11 的开始菜单移到左侧
  • ECMAScript 2017(ES2017):异步编程与对象操作的革新