AJAX即Asynchronous Javascript and XML,异步javascript和xml
优势:节省用户操作时间,提高用户体验,减少数据请求
用途:传输获取数据

AJAX简介

AJAXAsynchronous Javascript and XML,异步javascriptxml

优势:节省用户操作时间,提高用户体验,减少数据请求

用途:传输获取数据

封装的简单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() 返回一个包含所有头部信息的长字符串