此系列文章主要分享一下如何利用原生js,自己封装一个ajax api。本篇文章先来为此做一些前提准备,了解一下ajax请求少不了的XMLHttpRequest类。
浏览器在XMLHttpRequest类上定义了他们的HTTP API。 这个类的每一个实例都是一个独立的请求/响应对,这个对象的属性和方法允许指定请求细节和提取响应数据。
一、实例化XMLHttpResquest()
使用这个HTTP API的第一步就是实例化一个XMLHttpRequest对象:
var requestObj new XMLHttpRequest();
当然,实际开发中,不会这么简单,我们还要考虑兼容早版本的IE的问题,在IE5和IE6中它只是一个ActiveX对象。IE7之前的版本不支持非标准化的XMLHttpRequest()构造函数。我们需要这样写:
if (window.XMLHttpRequest) {
requestObj = new XMLHttpRequest();
} else {
requestObj = new ActiveXObject("Microsoft.XMLHTTP")//兼容早版本的ie, 如IE5 IE6
}
除了实例化一个XMLHttpRequest对象,我们也可以重用已有的对象,但要注意,这样会终止之前通过该对象挂起的任何请求。
请求和响应的组成
一个http请求由4部分组成:
- 方法或“动作”
- 请求的 url
- 可选的请求头集合,可能包含身份验证信息
- 可选的请求主体
HTTP响应包含3部分:
- 状态码,显示请求的状态,如是否成功
- 响应头集合
- 响应主体
二、指定请求
发起HTTP请求的下一步是调用XMLHttpRequest对象的open()方法:
request.open("方法", "URL")