3.03.31XMLHttpRequest对象
1.XMLHttpRequest对象
其实jq内部的ajax也是使用XMLHttpRequest进行封装的
我们可以使用XMLHttpRequest自己封装一个ajax
HttpRequest是一个对象,也是一个构造函数,可以实现数据的前后端交互
了解其常用的属性与方法
属性:XMLHttpRequest.responseText(只读属性):返回一个 DOMString(一个UTF-16字符串),该 DOMString 包含对请求的响应,如果请求未成功或尚未发送,则返回 null。
方法:XMLHttpRequest.open():初始化一个请求。
方法:XMLHttpRequest.send():发送请求。如果请求是异步的(默认),那么该方法将在请求发送后立即返回。
方法:XMLHttpRequest.setRequestHeader():设置 HTTP 请求头的值。
属性:XMLHttpRequest.onreadystatechange:当 readyState 属性发生变化时,调用的 event handler
2. 用法
创建XMLHttpRequest实例
为了使用JavaScript向服务器发送一个http请求,你需要一个包含必要函数功能的对象实例。这就是为什么会有 XMLHttpRequest 的原因。 这是IE浏览器的ActiveX对象 XMLHTTP的前身。 随后Mozilla,Safari和其他浏览器也都实现了类似的方法,被称为 XMLHttpRequest 。同时,微软也实现了XMLHttpRequest方法。
// Old compatibility code, no longer needed.
if (window.XMLHttpRequest) { // Mozilla, Safari, IE7+ ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE 6 and older
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
处理响应
发送一个请求后,你会收到响应。在这一阶段,你要告诉XMLHttp请求对象是由哪一个JavaScript函数处理响应,在设置了对象的 onreadystatechange 属性后给他命名,当请求状态改变时调用函数。
httpRequest.onreadystatechange = nameOfTheFunction;