一、创建了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实例,代码如下:
- if(typeof(XMLHttpRequest)=='undefined' && window.ActiveXObject)
- {
- function XMLHttpRequest(){
- var xml_http_arr=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
- var xml_request;
- for(var i=0;i<xml_http_arr.length;i++){
- if(xml_request = new ActiveXObject(xml_http_arr[i]))
- break;
- }
- return xml_request;
- }
- }
- var xml_http_request=new XMLHttpRequest();
- //登录
- function login(){
- var url="${pageContext.request.contextPath}/cbice/webuserAction.do?method=login";
- xml_http_request.open("post",url,true);
- xml_http_request.setRequestHeader("Content-Type","text/html;charset=gbk");
- xml_http_request.onreadystatechange=getResultValue;
- xml_http_request.send(url);
- }
- function getResultValue(){
- if(xml_http_request.readyState==4){
- if(xml_http_request.status==200){
- var res=xml_http_request.responseText;
- alert("成功"+res);
- }else{
- alert("失败");
- }
- }
- }