ajax内容总结
01创建XMLHttpRequest对象
不同浏览器创建方式不同
可以提取为方法供调用
function createXMLHttpRequest(){ if(window.ActiveXObject){//IE xhr = new ActiveXObject("Microsoft.XMLHTTP"); }else{ //其他浏览器 xhr = new XMLHttpRequest(); } } |
02建立到服务器的连接
xmlHttp.open("GET",“exmp1.jsp",true);
xmlHttp.open(“POST,“exmp1.jsp");
xmlHttp.open("GET", "examp1.jsp?"+new Date().getTime(),true);
使用 XMLHttpRequest 对象的 open() 方法来建立请求。参数如下:
request-type:发送请求的类型。典型的值是 GET 或 POST。
url:要连接的 URL
asynch:如果希望使用异步连接则为 true,否则为 false。默认为 true。
username:如果需要身份验证,则可以在此指定用户名。
password:如果需要身份验证,则可以在此指定口令。
通常使用其中的前三个参数或前两个参数即可。
03指定回调函数
Ajax响应回来后自动调用函数
不同的Ajax请求基本步骤相同,差别和难易主要在回调函数
function process(){ if(xhr.readyState == 4){//200 404 500 if(xhr.status == 200){ //得到返回的结果 var result = xhr.responseText; //写到指定位置 document.getElementById("namemsg").innerHTML=result; }else{ alert("Ajax请求错误"); }}} |
04 HTTP就绪状态
表示请求的状态或情形。在Ajax应用程序中需要了解五种就绪状态,但通常只使用状态4:
0:请求没有发出(在调用 open() 之前)
1:请求已经建立但还没有发出(调用 send() 之前)
2:请求已经发出正在处理之中(这里通常可以从响应得到内容头部)
3:请求已经处理,响应中有部分数据可用,但是服务器还没有完成响应
4:响应已完成,可以访问服务器响应并使用它
状态码status
200 404
返回结果数据 responseText responseXML
05发送请求
xmlHttp.send(null); //get
xmlHttp.send(queryString); //post
注意事项
如果是get请求,参数已经附加在url中,采用send(null)即可。如果是post请求,需要通过send()来传递参数。
如果是post请求,要在send之前添加如下语句指定http header:
xmlHttp.setRequestHeader("Content-Type“,"application/x-www-form-urlencoded"); |