关于Ajax

1.Ajax

异步 JavaScript 和 XML,

或 Ajax 本身不是一种技术,而是一种将一些现有技术结合起来使用的方法,包括:HTML 或 XHTML、CSS、JavaScript、DOM、XML、XSLT、以及最重要的 XMLHttpRequest 对象。当使用结合了这些技术的 Ajax 模型以后,网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。Ajax 最吸引人的特性是它的"异步"性质,这意味着它可以与服务器通信、交换数据并更新页面,而无需刷新页面。

尽管 Ajax 中的 X 代表 XML,但是 JSON 才是首选,因为它更加轻量,而且是用 JavaScript 编写的。在 Ajax 模型中,JSON 和 XML 都被用来包装信息。

2.步骤

1.创建对象

java 复制代码
//建立ajax异步对象
let xhr = new XMLHttpRequest()

2处理服务器响应

java 复制代码
httpRequest.onreadystatechange = () => {
  // 在这里处理服务器响应。
};

3发送请求

java 复制代码
httpRequest.open("GET", "http://www.example.org/some.file", true);
httpRequest.send();

3.onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。AJAX -- onreadystatechange 事件 | 菜鸟教程

4.示例

java 复制代码
//建立ajax异步对象
let xhr = new XMLHttpRequest()
//给对象添加事件
xhr.onreadystatechange = function () {
    //ajax 对象状态码 0 1 2 3 4
    if (xhr.readyState === 4 && xhr.status === 200) {
        //获取接口的响应字符串
        //console.log(xhr.responseText)

        let obj = JSON.parse(xhr.responseText)
        //console.log(obj['java.version'])
        let doc = document.body
        for (let p in obj) {
            //console.log(obj[p])
            doc.innerHTML += `<p>${p} = ${obj[p]}</p>`
        }
    }
}

//本服务器下的 get文件输出的内容
//打开ajax对象,请求方式为GET 请求路径 本服务器路径,同域 https://localhost:3333/
//xhr.open('GET', './get', true)

//xhr.open('GET', 'http://192.168.13.249:8088/', true)

// xhr.open('GET', 'http://localhost:8088/', true)
xhr.open('POST', 'http://localhost:8088/post', true)

//发送请求
xhr.send()
相关推荐
涉密IT资质笔记10 小时前
涉密人员脱密期管理规范:期限分级模型、就业限制边界与违规认定标准
java·服务器·前端·网络·数据库
u01110267510 小时前
工具页案例图如何编写 alt让图片说明与处理场景对应
java·前端·javascript·图像处理·人工智能·算法·ai作画
事圆则缓10 小时前
Flutter 状态管理框架对比(五):GetX 的响应式、依赖注册与生命周期
前端·javascript·flutter
广州智造11 小时前
Radioss复合材料使用的单元属性
前端·设计·cad·建模·cae·radioss
张宏宇11 小时前
我把微软开源的 tgrep 做成了本地版 GitHub Code Search:45,629 个文件里搜一次 10ms
前端·后端
huakoh11 小时前
MCP 调用超时后别急着重试:三步读回分清执行状态
前端
打工仔折腾 AI11 小时前
把模型切换交给平台:用蓝耘智能路由搭建商品评论分析工具
java·服务器·前端·后端·python·性能优化·ai agent 实战
不可能片场12 小时前
Electron 发布标题的冒号 击穿命令行解析
前端·electron
5008412 小时前
React Native for OpenHarmony 实战:三方库 react-native-crypto-js 的鸿蒙化适配指南
javascript·react native·性能优化·electron·harmonyos
reeswell12 小时前
我开源了 inspect-devtools —— 让 AI 终于能"看见"你屏幕上的组件
前端·人工智能