AJAX基础知识
AJAX即Asynchronous Javascript and XML,异步javascript和xml优势:节省用户操作时间,提高用户体验,减少数据请求用途:传输获取数据
AJAX简介
AJAX
即Asynchronous Javascript and XML
,异步javascript
和xml
优势:节省用户操作时间,提高用户体验,减少数据请求
用途:传输获取数据
封装的简单AJAX函数
function ajax(method,url,data,fn){
var xhr=null;
try{
xhr=new XMLHttpRequest();
}catch(e){
xhr =new ActiveXObject('Microsoft.XMLHTTP');
}
if(method=='get'&&data){
url+='?'+data;
}
xhr.open(method,url,true);
if(method=='get'){
xhr.send();
}else{
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
xhr.send(data);
}
xhr.onreadystatechange=function (){
if(xhr.readyState==4){
if(xhr.status==200){
alert(xhr.responseText);
}else{
alert('出错',Err:'+xhr.status');
}
}
}
}
首先,创建一个ajax
对象,接着,用try{}catch(){}
函数来兼容IE的低版本。接着,判断method,如果method为get
且存在data数据,则url地址后面加上?
和data数据。这时,调用ajax的open()
方法,打开这个页面;如果method为get
但是没有data数据的传输,则调用ajax的send()
方法;否则method为post
,调用setRequestHeader('content-type','application/x-www-form-urlencoded')
设置请求头,再调用send()
方法,传入data数据。最后,等待服务器返回内容,当readyState
改变时触发函数。
open
方法,参数:1,打开方式。2,地址。3,是否异步(异步true,非阻塞,前面代码不会影响后面代码的执行。同步false,阻塞,前面代码影响后面代码执行);
readyState
属性:0,初始化,还未调用open方法;1,载入,已调用send(),正在发送请求;2,载入完成,send()方法完成,已收到全部响应内容;3,解析,正在响应解析内容;4,完成,响应内容解析完成可以在客户端调用。
status
:服务器状态,http状态码。
responseText
:ajax请求返回的内容。
form表单:数据的提交(前后台键名,传输方式必须一致)
action:数据提交的地址,默认当前页面
enctype:提交数据格式,默认application/x-www-form-urlencoded
method:数据提交的方式,默认get方式
get:把数据名称和数据值用等号连接,如果有多个值的话,那么它会把多个数据组合用&进行连接,然后把数据放到url?后面传到指定的页面。最常用于向服务器查询某些信息。
xhr.open('get','2.get.php?username='+encodeURL('崔然')+'&age=30&new Date().getTime()',true);
post:由请求头传输,在浏览器内部进行。理论上无限制。通常向服务器发送应该被保存的数据。
xhr.open('post','2.post.php',true);
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
xhr.send('username=崔然&age=18');
getResponseHeader()
传入头部字段名称,获得相信的响应头部的信息。
getAllResponseHeaders()
返回一个包含所有头部信息的长字符串