Last updated
Last updated
可以不考虑兼容写法。
async默认为true,Ajax存在的意义就是发异步请求,所以第三个参数可以默认不传。
特别注意的是: 如果发送POST
请求,请使用setRequestHeader()
来添加 HTTP
请求头,并在send()
方法中传递要发送的数据:java
使用onreadystatechange
事件监听状态变化
其中的关键逻辑点:
使用xhr.readyState
判断请求状态,状态值含义:
0
: 表示请求未初始化,还没有调用 open()
1
: 服务器连接已建立,但是还没有调用 send()
2
: 请求已接收,正在处理中(通常现在可以从响应中获取内容头)
3
: 请求处理中,通常响应中已有部分数据可用了,没有全部完成
4
: 请求已完成;此阶段确认全部数据都已经解析完毕,可以通过异步对象的属性获取对应数据
使用xhr.state
判断http状态
使用xhr.response
作为请求结果返回
参考:
使用XMLHttpRequest实现一个Ajax(Asynchronous JavaScript And XML)