要编写健壮友好的 Ajax 应用程序,需要适当地处理请求和响应中的状态代码。
HTTP 状态代码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
状态代码分五种类型,由它们的第一位数字表示:
1xx:信息,请求收到,继续处理
2xx:成功,行为被成功地接受、理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误,请求包含语法错误或者请求无法实现
5xx:服务器错误,服务器不能实现一种明显无效的请求
AJAX经常要用到的状态代码如下:
401:未经授权
403:禁止
404:没找到
200:一切正常
//检查有效状态代码
function updatePage() {
if (request.readyState == 4){
if (request.status == 200) {
var response = request.responseText.split("|");
document.getElementById("order").value = response[0];
document.getElementById("address").innerHTML =response[1].replace(/\n/g, "");
}
else if (request.status == 404) {
alert ("Requested URL is not found.");
} else if (request.status == 403) {
alert("Access denied.");
} else
alert("status is " + request.status);
}
}
虽然这相当简单,但是它的确多提供了一些有用的信息。错误处理代码向用户或程序员更好地说明了究竟发生了什么。
更多状态代码定义见下方列表或见
http://www.w3.org/Protocols/HTTP/HTRESP.html
100 => “HTTP/1.1 100 Continue” //继续
101 => “HTTP/1.1 101 Switching Protocols” //分组交换协议
200 => “HTTP/1.1 200 OK” //OK
201 => “HTTP/1.1 201 Created” //被创建
202 => “HTTP/1.1 202 Accepted” //被采纳
203 => “HTTP/1.1 203 Non-Authoritative Information” //非授权信息
204 => “HTTP/1.1 204 No Content” //无内容
205 => “HTTP/1.1 205 Reset Content” //重置内容
206 => “HTTP/1.1 206 Partial Content” //部分内容
300 => “HTTP/1.1 300 Multiple Choices” //多选项
301 => “HTTP/1.1 301 Moved Permanently” //永久地传送
302 => “HTTP/1.1 302 Found” //找到
303 => “HTTP/1.1 303 See Other” //参见其他
304 => “HTTP/1.1 304 Not Modified” //未改动
305 => “HTTP/1.1 305 Use Proxy” //使用代理
307 => “HTTP/1.1 307 Temporary Redirect” //暂时重定向
400 => “HTTP/1.1 400 Bad Request” //错误请求
401 => “HTTP/1.1 401 Unauthorized” //未授权
402 => “HTTP/1.1 402 Payment Required” //要求付费
403 => “HTTP/1.1 403 Forbidden” //禁止
404 => “HTTP/1.1 404 Not Found” //未找到
405 => “HTTP/1.1 405 Method Not Allowed” //不允许的方法
406 => “HTTP/1.1 406 Not Acceptable” //不被采纳
407 => “HTTP/1.1 407 Proxy Authentication Required” //要求代理授权
408 => “HTTP/1.1 408 Request Time-out” //请求超时
409 => “HTTP/1.1 409 Conflict” //冲突
410 => “HTTP/1.1 410 Gone” //过期的
411 => “HTTP/1.1 411 Length Required” //要求的长度
412 => “HTTP/1.1 412 Precondition Failed” //前提不成立
413 => “HTTP/1.1 413 Request Entity Too Large” //请求实例太大
414 => “HTTP/1.1 414 Request-URI Too Large” //请求URI太大
415 => “HTTP/1.1 415 Unsupported Media Type” //不支持的媒体类型
416 => “HTTP/1.1 416 Requested range not satisfiable” //无法满足的请求范围
417 => “HTTP/1.1 417 Expectation Failed” //失败的预期
500 => “HTTP/1.1 500 Internal Server Error” //内部服务器错误
501 => “HTTP/1.1 501 Not Implemented” //未被使用
502 => “HTTP/1.1 502 Bad Gateway” //网关错误
503 => “HTTP/1.1 503 Service Unavailable” //不可用的服务
504 => “HTTP/1.1 504 Gateway Time-out” //网关超时
505 => “HTTP/1.1 505″ //HTTP版本未被支持