Asynchronous JavaScript and XML

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。是在不重新加载整个页面的情况下,与服务器交换数据并异步更新部分网页的技术。

前端知识之Ajax 随笔 第1张
在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

工作原理:
XMLHttpRequest对象 在后台,异步地与服务器交换数据。
前端知识之Ajax 随笔 第2张

创建

最早是IE5中以组件的形式实现的。由于非W3C标准,实现方式不统一:

IE5、6它被实现为一个ActiveX对象;
其他浏览器把它实现为一个JavaScript对象。

但属性和方法访问是兼容的。

function getHttpObject(){
    var xhr  = false;
    if(window.XMLHttpRequest){
        xhr = new XMLHttpRequest();

    }else if(window.ActiveXObject){
        xhr = new ActiveXObject("Microsoft.XMLHttp");
    }
    return xhr;

}

常用方法、属性

open("method","url")

建立对服务器的调用。url既可以是相对的也可以是绝对的。

send(content)

向服务器发送请求。

setRequestHeader("header","value")

把指定头部设置为所提供的值,比如post请求需要设置setRequestHeader("ContentType","application/x-www-form-urlencoded")告诉服务器正在发送数据,而且该数据已经符合URL编码了。它
之前需要调用open()方法。

readState请求的状态,0未初始化,1正在加载,2已经加载,3交互中,4完成。
onreadystatechange每个状态改变都会触发这个事件处理器。服务器触发的。
status服务器的HTTP状态码。
responseXML服务器响应返回XML类型的数据,文本会存储在该对象中,这个对象可以解析为DOM对象。
responseText服务器响应HTML、Json类型的数据,文本会存储在该对象中。

服务器返回数据类型的选择:
前端知识之Ajax 随笔 第3张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄