我很菜,说的不对,各位大佬,多多批评,嘴下留情。
核心 (实例化对象)
XMLHttpRequest 是核心
var xhr = new XMLHttpRequest(); -->主流浏览器
var xhr = new ActiveXObject('Microsoft.XMLHTTP') --> 针对ie
xhr对象上的方法
open() : 建立到服务器的新的请求
send() : 向服务器发送请求
abort() : 退出当前请求
readyState : 提供当前HTML的就绪状态
responseText : 服务器返回的请求响应文本
xhr.open() 需要传递的参数
request-type 发送请求的类型
url 要连接的URL地址
asynch 是否希望异步进行(异步为true,同步为false 一般都为异步)
userName 身份验证 (可选值)
password 身份验证 (可选值)
HTTP就绪状态 ajax.readyState
1、请求已经建立但还没有发出(调用send()之前)
2、请求已经发出正在处理之中
3、请求已经处理,响应中通常有部分数据可以用,但是响应并没有完成
4、响应完成 一般都只会判断 ajax.readyState == 4
5、进而判断状态码是否是成功时返回的状态码 ajax.status == 200
6、如果 4、 5都能够成功地通过,我们就可以拿到我们需要的数据了 ajax.responseText
创建一个AJAX的步骤
1、创建ajax对象
var ajax = new XMLHttpRequest() || new ActiveXObject('Microsoft.XMLHTTP');
2、打开请求
ajax.open()
判断 method == GET || POST
如果是GET
xhr.open(GET, url + '?' + data, true) //打开请求需要在url后面拼接上数据
如果是POST
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded') 需要 设置一个请求头
3、发送请求
xhr.send()
如果是以POST请求发送的话,data这个值需要放在send里面发送出去。
xhr.send(data)
GET 请求不变
xhr.send()
4、监听
xhr.onreadystatechange = function(){//监听请求状态
if(xhr.readyState == 4){//监听状态码
if(xhr.status == 200){//处理获取到的值
xhr.responseText
}
}
}