ajax概述
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。它不是新的编程语言,而是一种技术,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
ajax实现步骤
- 创建ajax对象;
var xhr;
if (window.XMLHttpRequest){// IE7+, Firefox, Chrome, Opera, Safari
xhr = new XMLHttpRequest();
}else{// IE6, IE5
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
- 监听,监听ajaxr对象的状态变化;
xhr.onreadystatechange = function(){
console.log(xhr.responseText)
if(xhr.readyState == 4){ //表示ajax的请求已经发送完成,但是不知道成功还是失败
if(xhr.status == 200){ //前提条件是完成,此时是成功的状态
console.log(xhr.responseText)
}
}
}
- 创建请求消息 建立连接
xhr.open("请求方式(常见的get和post http的请求方式一共有8种)","请求的地址","boolean表示同步还是异步");
xhr.open("GET","02.php?username='abcd'",true)
- 发送请求消息
xhr.send( null )
上面的是get请求,如果是post请求,那么需要在发送之前,得把post请求的参数格式指定一下:即在xhr.open()之前加上:
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
并且参数也只能在send()里面传:
xhr.open("POST","02.php",true);
xhr.send('username=abcd');
ajax状态码(xhr.readyState)
ajax状态码有五种,分别代表的含义如下:
0:请求未初始化(还没有调用open());
1:请求已经建立,但是还没有发送(还没有调用send());
2:请求已经发送;
3:请求正在处理中;
4:响应已经完成。
ajax响应码(xhr.status)
大致有下列5种:
1xx:信息类的错误;
2xx:成功;
3xx:重定向 ,常见的主要有304、302、301;
4xx:客户端错误,常见错误码404;
5xx:服务端错误 。
下面是详细的错误码的解释(我认为常见的都加粗了的):
错误码 | 说明 |
---|---|
100 | 客户必须继续发出请求 |
101 | 客户要求服务器根据请求转换HTTP协议版本 |
200 | 交易成功 |
201 | 提示知道新文件的URL |
202 | 已经接受但处理未完成 |
203 | 返回信息不确定或不完整 |
204 | 请求收到,但返回信息为空 |
205 | 服务器完成了请求,用户代理必须复位当前已经浏览过的文件 |
206 | 服务器已经完成了部分用户的GET请求 |
300 | 重定向 |
301 | 删除请求数据,即永久重定向 |
302 | 在其他地址发现了请求数据 |
303 | 建议客户访问其他URL或访问方式 |
304 | 客户端已经执行了GET,但文件未变化 |
305 | 请求的资源必须从服务器指定的地址得到 |
306 | 前一版本HTTP中使用的代码,现行版本中不再使用 |
307 | 申明请求的资源临时性删除 |
400 | 错误请求,如语法错误(客户端错误) |
401 | 请求授权失败,访问别拒绝 |
402 | 保留有效ChargeTo头响应 |
403 | 禁止访问 |
404 | 没有发现文件 |
405 | 用户在Request-Line字段定义的方法不允许 |
406 | 根据用户发送的Accept拖,请求资源不可访问 |
407 | 类似401,用户必须首先在代理服务器上得到授权 |
408 | 客户端没有在用户指定的饿时间内完成请求 |
409 | 对当前资源状态,请求不能完成 |
410 | 服务器上不再有此资源且无进一步的参考地址 |
411 | 服务器拒绝用户定义的Content-Length属性请求 |
412 | 一个或多个请求头字段在当前请求中错误 |
413 | 请求的资源大于服务器允许的大小 |
414 | 请求的资源URL长于服务器允许的长度 |
415 | 请求资源不支持请求项目格式 |
416 | 请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段 |
417 | 服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求 |
500 | 服务器错误 |
501 | 服务器不支持请求的函数 |
502 | 服务器暂时不可用,有时是为了防止发生系统过载 |
503 | 服务器过载或暂停维修,宕机 |
504 | 网关超时 |
505 | 服务器不支持或拒绝支请求头中指定的HTTP版本 |
jQuery中的ajax
$.ajax({
type : "POST", // 请求方式
url : "02.php", //请求地址
data : { //请求数据
},
success : function(data){ //成功时的操作
console.log(data)
},
error : function(err){ // 错误时的操作
console.log(err)
}
})