Ajax技术可以使网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。
一、XMlHttpRequest
XMlHttpRequestAPi 是Ajax的核心,使用Ajax 需要构建一个XMLHttpRequest对象来发送请求。
getXxx.onclico=()=>{
let getAdd = new XMLHttpRequest;// 创建Ajax 对象
getAdd.open('get','www.baidu.com ');// 请求方式,路径
getAdd.onreadystatechang=()=>{
if(getAdd.readyState===4 && getAdd.readyStatus===200){
console.log('成功加载 ')
// 加载到的数据可以在这里通过Dom插入页面
}else{
// 加载失败执行
}
}// 加载成功时的回调函数
getAdd.send() //发送请求
}
二、onload事件和onerror事件
浏览器允许我们跟踪外部资源的加载——脚本,iframe,图片等。
这里有两个事件:
onload——成功加载
onerror——出现error
除去脚本图片等,Ajax 请求数据更常用的是 onreadystetechange
三、onreadystatechange事件
只要 readyState 属性发生变化,就会调用相应的处理函数 (en-US)。这个回调函数会被用户线程所调用。
注: 不可同步使用
readyStata1. 表示 open
2. 表示send
3. 表示响应了第一个字节(开始成功响应)
4. 加载完成
status 状态码状态码大于200,小于300时 表示加载成功
四、JSON
json是一种标记语言,基于js的标准,支持 数值,字符,对象,true,false,数组,null, 由于它易于人阅读和编写,同时也易于机器解析和生成的特性,非常适合数据交换。是一种轻量级的数据交换格式。
JSON.parse将符合JSON语法的字符串转换成JS对应的类型数据
JSON.stringifyJSON.parse 的逆运算,将js数据转换为JSON字符串
五、XMLHttpRequest.withCredentials
withCredentials****
它指示了是否该使用类似 Cookies、Authorization Headers (头部授权) 或者 TLS 客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用 withCredentials 属性是无效的。
此外,这个指示也会被用做响应中 Cookies 被忽视的标示。默认值是 false。
MDN : developer.mozilla.org/zh-CN/docs/…
withCredentials: false, // 默认不使用
// `adapter` 允许自定义处理请求,这使测试更加容易。
// 返回一个 promise 并提供一个有效的响应 (参见 lib/adapters/README.md)。