原生 xmlhttprequest 是 javascript 发起 ajax 请求最基础可控的方式,兼容 ie7+,需实例化后调用 open() 配置请求,setrequestheader() 设置头信息,send() 发送,通过 onload 监听响应并用 responsetext 等获取数据。

原生 XMLHttpRequest(简称 XHR)是 JavaScript 中发起 Ajax 请求最基础、最可控的方式。它不依赖任何库,兼容性好(IE7+),适合理解底层原理或在轻量场景中使用。
创建并配置 XMLHttpRequest 对象
先用 new XMLHttpRequest() 实例化对象,再调用 open() 设置请求方法、URL 和是否异步:
-
open(method, url, async):第三个参数async一般为true(默认),设为false会阻塞页面,已不推荐 - 常用
method有"GET"、"POST"、"PUT"、"DELETE" - URL 可以是相对路径,也支持带查询参数的完整地址(如
"/api/users?id=123")
设置请求头与发送请求
如果是 POST 或需要自定义格式(如 JSON),需在 send() 前调用 setRequestHeader() 设置请求头:
- 发送 JSON 数据时,通常加:
xhr.setRequestHeader("Content-Type", "application/json") - GET 请求一般不需要设请求头;POST 表单数据可设为
"application/x-www-form-urlencoded" -
send(body)的body参数:GET 传null,POST 可传字符串、FormData或JSON.stringify(obj)
监听响应并处理结果
通过监听 onload(成功)、onerror(网络错误)、onreadystatechange(旧式写法)来响应状态变化:
- 推荐用
onload:当status在 200–299 范围内且响应完成时触发 - 检查
xhr.status和xhr.readyState === 4(4 表示完成)是关键 - 响应体通过
xhr.responseText(文本)、xhr.responseXML(XML)或xhr.response(自动解析为 ArrayBuffer/JSON 等,需提前设xhr.responseType)获取 - 例如:
JSON.parse(xhr.responseText)解析 JSON 字符串(注意捕获语法错误)
一个完整的 GET 请求示例
(含错误处理和 JSON 解析)
const xhr = new XMLHttpRequest();
xhr.open("GET", "/api/posts");
xhr.onload = function () {
if (xhr.status >= 200 && xhr.status Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











