目录
1.Ajax工作原理
Ajax 全称Asynchronous JavaScript and XML,异步JavaScript和XML技术
用于实现与服务器进行异步交互的功能
2.XMLHttpRequest对象
2.1XMLHttpRequest对象常用属性
- 当ready State=1时,onreadystatechange触发
- responseText只包括主体内容,不包括头部
- SPA:单页面应用程序
- 当把responseType="json"时,response拿到的就是JS object(js对象)
- responseType:指定回应类型,response:根据回应类型解析成对应格式
- status状态码,statusText状态码文本
2.2XMLHttpRequest对象常用方法
- setRequestHeader():设置 HTTP 请求头部的方法(用的更多)
- Context-Type->application/json即告诉服务端我请求的数据是json
3.AJAX操作的步骤
1.创建XMLHttpRequest对象
2.建立监听
3.设置参数
4.发送请求到服务端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<ul id="posts"></ul>
<!-- 无序列表,装一个新闻 -->
<script>
var url = "http://1.14.69.117:5000/posts";
// var url = "http://1.14.69.117:5000/postsss";
//1.new对象
var xhr = new XMLHttpRequest();
//2.建监听
xhr.addEventListener("load", function () {
if (xhr.status === 200) {
console.log(xhr.response);
//(1)把JSON格式字符串转换为数组
var data = JSON.parse(xhr.response);
// (2)遍历数组,创建li
var allLi = "";
for (var i = 0; i < data.length; i++) {
var oneLi = `<li>title:${data[i].title} author:${data[i].author}</li>`; //模板字符串
allLi = allLi + oneLi;
}
//(3)将所有li加入到ul
document.querySelector("#posts").innerHTML = allLi;
} else {
console.log("get server error response:", xhr.status);
}
// console.log(xhr.response); //第二步(异步) 第一步(同步)
console.log("recevie all data"); //第三步(异步) 第二步(同步)
});
//3.设置参数(默认是异步)
xhr.open("GET", url, false); //第三个参数为false,即表示同步,为true表示异步
//4.发送
xhr.send();
console.log("after send"); //第一步(异步) 第三步(同步)
</script>
</body>
</html>