谈到ajax就不得不谈到 XMLHttpRequest
因为XMLHttpRequest 是 AJAX 的基础
作用:
XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
创建XMLHttpRequest对象:
try {
xhr = new XMLHttpRequest(); //新版本浏览器
} catch (error) {
xhr = new ActiveXObject('Microsoft.XMLHTTP'); //老版本IE(5,6)
}
向服务器发送请求
如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:
open有三个参数
method:请求的类型;GET 或 POST
url:文件在服务器上的位置
async:true(异步)或 false(同步) 【是否异步】
send有一个参数
send(string)
将请求发送到服务器。
string:仅用于 POST 请求 也就是GET方法不需要发送
接下来就是onreadystatechange事件
readyState属性
0 :请求未初始化;
1:服务器连接已建立;
2:请求已接收;
3:请求处理中;
4:请求已完成,且响应就绪;
status:属性
200:ok;
404:未找到页面;
操作代码
xhr.onreadystatechange = function(ev2){
if(xhr.readyState === 4 && xhr.status === 200){
// alert(xhr.responseText); //responseText指的是获取的内容
var obj = JSON.parse(xhr.responseText);
oSpan.innerHTML = obj.message;
}
}
另外要注意的是
如果想要使用post提交数据
- 要添加这行代码 xhr.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded”);
- send中需要有数据
因为post和get的方式获得的数据的地址是不同的 所以需要有不同的操作方法
具体见下篇 POST和GET区别