ajax 的全称 Asynchronous JavaScript and XML ( 异步 JavaScript 和 XML ) 。
ajax 是一种创建交互式网页应用的网页开发技术 。其中最核心的依赖是浏览器提供的
XMLHttpRequest 对象,是这个对象使得浏览器可以发出 HTTP 请求与接收 HTTP 响应。实现了在页面不刷新的情况下和服务器进行交互。
方法 |
描述 |
new XMLHttpRequest() | 生成一个 XMLHttpRequest 对象 |
open(‘ 请求类型 ’ , ’URL’ , ’ 请求方式 ’) | 1. 请求类型: get 、 post 2. 请求地址:服务器(文件)位置 3. 请求方式: true 为异步, false 为同步 |
send() | 发送请求 |
onreadystatechange | 该方法可以定义响应执行函数,当 readyState 属性发生变化时会自动调用该方法。 |
readyState | 交互流程,有 5 个阶段 0. 请求初始化 1. 服务器链接已建立 2. 请求已接收 3. 正在处理请求 4. 请求已完成且响应已就绪 |
status | HTTP 响应状态码 200 : OK (请求成功) 403 : Forbidden (禁止) 404 : Page not found (未找到) |
responseText | 响应文本(返回的数据) |
setRequestHeader(‘ 头部名称 ’ , ‘ 头部值 ’) | 请求头,向请求添加 HTTP 头部 |
ajax 使用方法:
1. 创建 XMLHttpRequest 对象
2. 使用 open 方法指定要请求的地址、类型和方式。
3. 使用 send 方法发送请求,如果需要传参:
get 方式要将参数拼接到 URL 后边,参数间 & 分割。例: ’index.php?name= 张三 &age=18’
post 方式可以将参数放到 send() 里。例: send(‘name= 张三 &age=18’)
4. 绑定 onreadystatechange 事件,判断 readyState 和 status 的状态。
5. 接收数据,通过 json 转换使用。
let xhr = new XMLHttpRequest(); xhr.open('get','js/index.json',true); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { let text = xhr.responseText; console.log(text); let data = JSON.parse(text); console.log(data); } };
注意:本地 json 文件属于静态资源,一般情况下不支持 post 方式请求。