ajax原理

44 阅读1分钟

ajax:异步javascript和XML,是指一种创建交互式网页应用的网页开发技术。

通过XmlHttpRequest对象向服务器发送异步请求,从服务器获得数据,然后用javascript来操作DOM从而更新页面。

xmlhttprequest过程:

1.创建XMLhttpRequest对象

2.使用open方法设置和服务器的交互信息

3.如果默认是json格式,那就可以不设置requestHeader,默认的发送的是json格式数据

4.发送请求

5.如果请求完成,并响应完成,获取到响应数据

function getRequest(){
    //1.创建XMLhttpRequest对象
    var request=new XMLHttpRequest();
    //2.使用open方法设置和服务器的交互信息
    request.open('get','https://api.muxiaoguo.cn/api/lishijr');
    //3.如果默认是json格式,那就可以不设置requestHeader,这是默认的发送json格式数据
    request.setRequestHeader('Content-type', 'application/json; charset=utf-8');
    //4.发送请求
    request.send();
    //5.如果请求完成,并响应完成,获取到响应数据
    request.onreadystatechange=function (){
        if(request.readyState===4&&request.status===200){
            console.log(JSON.parse(request.responseText));
        }
    }
}

发送json格式数据
request.setRequestHeader('Content-type', 'application/json; charset=utf-8');

发送表单数据
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=utf-8');

发送纯文本(不指定Content-type时,此是默认值)
request.setRequestHeader('Content-type', 'text/plain; charset=utf-8');

发送html文本
request.setRequestHeader('Content-type', 'text/html; charset=utf-8');

responseText:作为响应体返回的文本。

responseXML:如果响应的内容类型是"text/xml"或"application/xml",那就是包含响应数据的 XML DOM 文档。

status:响应的 HTTP 状态。

statusText:响应的 HTTP 状态描述。

readyState:返回HTTP请求状态 0 open()尚未调用 UNSENT 1 open()已调用 OPENED 2 接收到头信息 HEADERS_RECEIVED 3 接收到响应主体 LOADING 4 响应完成 DONE

readystatechange 请求状态改变事件 当readyState值改变为4或服务器的响应完成时,所有的浏览器都触发该事件

if(request.readyState === 4 && request.status === 200){}