1 发送请求的步骤

1.取得XmlHttpRequest
2.调用open(“POST/GET”,”url”, true/false);
3.调用send();

var xmlHttp = ajaxFunction();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
alert("success");
}
}
};

//timeStamp是必须的
//GET请求时发送的参数写在url后面
//xmlHttp.open("GET", "<s:url action='ajaxtest' />?timeStamp=" + new Date().getTime()&param11=cuiyong", true);

//timeStamp是必须的
//post请求时必须加上这一行,如果不添加,send方法无法传递参数
xmlHttp.open("POST", "<s:url action='ajaxtest' />?timeStamp=" + new Date().getTime()", true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//post请求时通过send发送参数。
xmlHttp.send("param11=cy&param11=jj");

4.取得XmlHttpRequest的函数

function getXMLHttpRequest() {
var xmlHttp;
try { // Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {// Internet Explorer
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}

return xmlHttp;
}

2 readyState

  1. XmlHttpRequest对象被初始化。 还没有调用 open 方法
  2. 调用了open()。 open 方法已被调用,但 send 方法还没有被调用
  3. 调用了send()。send 已被调用。请求已经开始
  4. 开始接收响应。服务器正在发送响应
  5. 完成响应。响应发送完毕

3 status

  1. 服务器发送的每一个响应也都带有首部信息。三位数的状态码是服务器发送的响应中最重要的首部信息,并且属于超文本传输协议中的一部分。
  2. 常用状态码及其含义:
    • 404 没找到页面(not found)
    • 403 禁止访问(forbidden)
    • 500 内部服务器出错(internal service error)
    • 200 一切正常(ok)
    • 304 没有被修改(not modified)(服务器返回304状态,表示源文件没有被修改 )
  3. 在 XMLHttpRequest 对象中,服务器发送的状态码都保存在 status 属性里。通过把这个值和 200 或 304 比较,可以确保服务器是否已发送了一个成功的响应