日期:2014-05-16  浏览次数:20596 次

Ajax原理及应用三(发送请求和处理响应的一般步骤)

一、创建了XMLHttpRequest对象后,便可以通过其属性和方法发送和处理HTTP请求,发送请求和处理响应的一般步骤如下:

  • 1、调用open()方法设置请求方式、目标URL,同步或者异步方式以及可能需要的授权信息。
  • 2、根据需要,调用setRequestHeader(),设置指定的HTTP头,发送GET请求时,不需要设置指定的请求头,而发送post请求时,需要设置“content-type”头设置为“application/x-www-form-urlencoded",否则服务器端脚本将无法解析发送到服务器端的数据内容。
  • 3、对于异步请求,如果需要对服务器获取和操作响应结果,则在发送请求之前,需要为onreadystatechange属性指定处理方法。该函数用户对服务器响应进行处理。
  • 4、调用send()方法发送请求,对于GET请求,send()方法参数为null,对于post请求,则send()方法参数为要发送的内容。
  • 5、在为onreadystatechage事件句柄指定函数时,通过判断readState是否到达4,判断响应是否已全部接收到。当readyState为4时,通过getResponseHeader()或者getAllRequestHeader()方法获取响应头信息,通过responseText或者responseXML属性获取响应内容。
  • 6、对响应内容进行相应操作。


二、创建ajax实例,代码如下:

Javascript代码 复制代码
  1. if(typeof(XMLHttpRequest)=='undefined'?&&?window.ActiveXObject) ??
  2. ????{??? ??
  3. ??????function?XMLHttpRequest(){??? ??
  4. ????????var?xml_http_arr=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];??? ??
  5. ????????var?xml_request;??? ??
  6. ????????for(var?i=0;i<xml_http_arr.length;i++){??? ??
  7. ???????????if(xml_request?=?new?ActiveXObject(xml_http_arr[i]))??? ??
  8. ????????????break;??? ??
  9. ?????????}?????? ??
  10. ???????return?xml_request;??? ??
  11. ???????}??? ??
  12. ??}??? ??
  13. ??
  14. var?xml_http_request=new?XMLHttpRequest();? ??
  15. //登录 ??
  16. function?login(){ ??
  17. ?????? ??
  18. ???var?url="${pageContext.request.contextPath}/cbice/webuserAction.do?method=login";???? ??
  19. ????xml_http_request.open("post",url,true