一、Ajax是什么
异步的JavaScript与XML(JSON),主要是完成局部刷新
核心:XMLHttpRequest
二、Ajax的基本使用
1.Ajax创建
普通:new XMLHttpRequest()
低版本IE:new ActiveXObject()
兼容方法:
function getAjax() {
if (XMLHttpRequest) {
return new XMLHttpRequest();
} else if (ActiveXObject) {//兼容低版本IE
return new ActiveXObject();
}
}
2.open方法==>准备请求
基本形式open(bstrMethod,bstrUrl,varAsync)
1.bstrMethod:请求的方法(get/post)
2.bstrUrl:服务器IP地址,访问的路径
3.是否异步传输,默认为true
3.监听ajax状态变化 onreadystatechange
ajax.onreadystatechange = function(){
if(readyState == 4){
//数据传输完毕执行的内容
}
}
4.readyState: 返回ajax对象请求的状态(0-4)
0==> 未初始化,对象已建立,尚未调用open();
1==>初始化,对象已建立,尚未调用send();
2==>发送数据,send方法已调用但是当前状态以及HTTP头未知;
3==>数据传送中,已接收部分数据,但HTTP头信息不全;
4==>数据接收完毕,此时可使用responseBody以及responseText获取回应数据
5.status:返回当前请求的http状态码 200==>代表成功
6.send()==>发送请求
send(varBody)
varBody:欲通过此请求发送的数据,只有POST才使用
7.ajax.setRequestHeader(key,value)==>设置请求头
若为POST方式请求则需要在open方法后面加上: ajax.setRequestHeader(“Content-type”,"application/x-www-form-urlencode""),否则会出现乱码
8.ajax.responseText:获取到的值只能为字符串
注意事项:
1.后端不进行页面跳转(会直接返回页面代码内容)
2.返回的肯定是字符串
3.后端不能使用println,会有换行,影响判断值
4.浏览器的缓存问题(解决方法:在url中传值_timer = new Date().getTime())