Ajax的核心是 XMLHttpRequest对象
XMLHttpRequest对象
所有现代浏览器都支持XMLHttpRequest对象
XMLHttpRequest 对象用于同幕后服务器交换数据。
- 这意味着可以更新网页的部分,而不需要重新加载整个页面。
创建 XMLHttpRequest 对象
所有现代浏览器(Chrom、IE7+、Firefox、Safari 以及 Opera)都有内建的 XMLHttpRequest 对象。
- 创建 XMLHttpRequest 的语法是:
variable = new XMLHttpRequest();
- 老版本的 Internet Explorer(IE5 和 IE6)使用 ActiveX 对象:
varible = new AcitveXObject("Microsoft.XMLHttp")
为了应对所有浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,创建 XMLHttpRequest 对象,如果不支持,则创建 ActiveX 对象:
实例
var xhttp;
if (window.XMLHttpRequest) {
xhttp = new XMLHttprequest();
}else {
//code for IE6,IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
跨域访问
出于安全原因,现代浏览器不允许跨域访问。
这意味着尝试加载的网页和 XML 文件都必须位于相同服务器上。
XMLHttpRequest 对象方法
1. new XMLHttpRequest()
创建新的XMLHttpRequest 对象
2.abort()
取消当前请求
3.getAllResponseHeaders()
返回头部信息
4.getResponseHeader()
返回特定头部信息
5.open(method,url,async,user,psw)
规定请求
- method:请求类型 GET 或POST
- url; 文件位置
- async : true(异步)或 false (同步)
- user :可选的用户名称
- psw : 可选的密码
6.send()
将请求发送到服务器,用于 GET请求
7.send(string)
将请求发送到服务器,用于POST请求
setRequestHeader()
向要发送的报头添加标签、值对
XMLRequest对象属性
onreadystatechange
定义当 readyState 属性发生变化时被调用的函数
readyState
保存XMLHTTPRequest 的状态
- 0:请求未初始化
- 1: 服务器连接已建立
- 2:请求已经收到
- 3: 正在处理请求
- 4: 请求已经完成并且响应已经就绪
responseText
以字符串发回响应数据
responseXML
以XML数据返回响应数据
status
返回请求的状态号:
- 200: “OK”
- 403: “Forbidden”
- 404: “Not Found”
statusText
返回状态文本(比如)
- “OK”
- “Not Found”