1. 创建 xmlhttprequest 对象
1
2
3
var xhr = createXHR();
var data = null;
console.log(xhr);
  1. 写在 2 上面
    响应 XMLHttpRequest 对象状态变化的函数,onreadystatechange 在 readystatechange 属性发生改变时触发
1
2
3
4
5
6
7
8
9
10
11
12
xhr.onreadystatechange = function () {
// 异步调用成功,响应内容解析完成,可以在客户端调用
if (xhr.readyState == 4) {
//xhr的status属性>=200时才表示真正的异步调用成功;xhr的status属性===304时表示请求资源没有被修改,可以使用浏览器的缓存,也就是表示之前请求成功过,而且请求的资源距离上次请求没有发生改变,可以使用缓存。
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {
// 返回服务器请求的数据
// console.log(data = eval("("+xhr.responseText+")"));
console.log(data = JSON.parse(xhr.responseText));
renderDataToDom();//渲染方法
}
}
}
  1. 创建请求(get 和 post)
    get

    1
    2
    3
    4
    5
    6
    // 创建请求
    xhr.open("get", "./server/slider.json")
    //若要添加数据先?再&
    xhr.open("get", "./server/slider.json?user=zhangsan&")
    // 发送请求,get为null
    xhr.send(null);

post

1
2
3
4
5
6
//创建请求
xhr.open("post", "./server/slider.json")
// 发送请求
xhr.send({user:"zhangsan",id:6});
//头文件一般写死,post必须写
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

最后渲染

1
2
3
function renderDataToDom(){
……
}