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

index.html 调用 ajax

index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>AJAX 请求示例</title><script>// 封装 Ajax 为公共函数:传入回调函数 success 和 failfunction myAjax (url, success, fail) {// 1、创建XMLHttpRequest对象var xmlhttpif (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest()} else {// 兼容IE5、IE6浏览器。不写也没关系xmlhttp = new ActiveXObject('Microsoft.XMLHTTP')}// 2、发送请求xmlhttp.open('GET', url, true)xmlhttp.send()// 3、服务端响应xmlhttp.onreadystatechange = function () {if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {var obj = JSON.parse(xmlhttp.responseText)console.log('数据返回成功:' + obj)success && success(xmlhttp.responseText)} else {// 这里的 && 符号,意思是:如果传了 fail 参数,就调用后面的 fail();如果没传 fail 参数,就不调用后面的内容。因为 fail 参数不一定会传。fail && fail(new Error('接口请求失败'))}}}// 单次调用 ajaxfunction singleAjaxCall () {myAjax('a.json', (res) => {console.log('单次调用结果:', res)}, (err) => {console.error('单次调用失败:', err)})}// 多次调用 ajax。接口请求顺序:a --> b --> cfunction multipleAjaxCalls () {myAjax('a.json', (res) => {console.log('a.json 结果:', res)myAjax('b.json', (res) => {console.log('b.json 结果:', res)myAjax('c.json', (res) => {console.log('c.json 结果:', res)}, (err) => {console.error('c.json 请求失败:', err)})}, (err) => {console.error('b.json 请求失败:', err)})}, (err) => {console.error('a.json 请求失败:', err)})}window.onload = function () {singleAjaxCall()multipleAjaxCalls()};</script>
</head><body><h1>AJAX 请求示例</h1>
</body></html>

创建 JSON 文件

a.json

{"message": "这是 a.json 的数据"
}

b.json

{"message": "这是 b.json 的数据"
}

c.json

{"message": "这是 c.json 的数据"
}

启动 HTTP 服务器

确保所有文件都在同一个目录下,然后启动 HTTP 服务器。

python -m http.server 8000

访问 HTML 文件

http://localhost:8000/index.html

相关文章:

  • [spring]SpringBoot拦截器 统一数据返回格式 统一异常处理
  • QML使用Qt自带软键盘例子
  • Robot Operating System——带有协方差矩阵的三维空间中的位姿(位置和方向)
  • 成都睿明智科技有限公司赋能商家高效变现
  • OpenHarmony(鸿蒙南向)——平台驱动开发【PIN】
  • N诺计算机考研-错题(DS)
  • Qt C++设计模式->享元模式
  • [C++][IO流][流输入输出][截断理解]详细讲解
  • 【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换
  • OSPF路由计算
  • golang rpc
  • 若依从redis中获取用户列表
  • Java使用Redis的详细教程
  • AIGC: 10 AI转文服务器的搭建过程记录
  • CTMO时代下的营销新力量:2+1链动模式AI智能名片商城小程序
  • 时间复杂度分析经典问题——最大子序列和
  • 《深入 React 技术栈》
  • Apache Zeppelin在Apache Trafodion上的可视化
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • DOM的那些事
  • Git同步原始仓库到Fork仓库中
  • k8s如何管理Pod
  • Laravel 菜鸟晋级之路
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Magento 1.x 中文订单打印乱码
  • python3 使用 asyncio 代替线程
  • Sublime text 3 3103 注册码
  • webpack+react项目初体验——记录我的webpack环境配置
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 初探 Vue 生命周期和钩子函数
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 老板让我十分钟上手nx-admin
  • 模型微调
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 思否第一天
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 移动端高清、多屏适配方案
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (42)STM32——LCD显示屏实验笔记
  • (LLM) 很笨
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (分类)KNN算法- 参数调优
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (南京观海微电子)——示波器使用介绍
  • (十三)Maven插件解析运行机制
  • (算法)硬币问题
  • (学习日记)2024.01.19