var xhr = new XMLHttpRequest()
//GET,POST
xhr.open('GET','./time.php','true')
//发送请求
xhr.send()
//接收响应
xhr.onreadystatechange = function() {
switch(this.readyState) {
case 2: --------------->已经接收到了响应报文的响应头
console.log(this.getAllResponseHeaders())
//获取具体某一个
console.log(this.getResponseHeader('server'))
break
case 3:------------------->正在下载响应报文响应体,响应体可能不完整
break
case 4:-------------> 一切OK(整个响应报文已经完整下载下来了)
console.log(this.responseText)
break
}
}
//发送GET请求并传递参数
xhr.open('GET','time.php?id=2')
xhr.send(null)
//发送POST请求并传递参数
1、拼接的字符串
2、键值(注:一旦请求体是 urlencoded 格式的内容,一定要设置请求头中的Content-Type)
同步异步
open()的第三个参数是async,可以传入一个布尔值,默认为true(异步)。同步模式在ajax操作时会出现阻塞。
兼容方案
XMLHttpRequest在老版本浏览器(IE5/6)中有兼容问题,可以通过以下方法代替。
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() :new ActiveXObject('Microsoft.XMLHTTP')