学了几天ajax发送请求,回顾了下,居然不知道学了什么,所以总结了下,以后能翻出来看看
-Ajax get方式发送请求
1.创建XMLHttpRequest对象
var xhr =new XMLHttpReauest();
2.准备发送
//参数一:请求方式
// 参数二:请求地址
// 参数三:同步或者异步标志位,默认是 true 表示异步 false 表示同步
xhr.open('get','请求的URL地址字符串',true);
3.执行发送动作
xhr.send(null); // get 请求这里需要添加 null 参数
4.指定回调函数
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
var data =xhr.responseText;
console.log(data);
}
}
}
*注意:
第二点中的参数true 表示异步方式,这时当状态改变时会调用onreadystatechange属性指定的回调函数,如果要传递参数直接在请求的URL后面通过拼接字符串的方式传递,比如
‘./check.php?username=’+username+'&password='+password
第四步中的readyState和status分别表示跟踪的状态和状态码*
readyState属性值有下列这几种:
返回值: 0;表示未初始化,表示对象已经建立,但是尚未初始化,尚未调用open()方法;
1;初始化,表示对象已经建立,尚未调用send()方法;
2:发送数据。表示send()方法已经调用,但是当前的状态及HTTP头未知
3;数据传送中,已经接收部分数据,因为响应及HTTP头不全,这时通过responseBody和responseText获取部分数据会出现错误
4;完成。数据接收完毕,此时,可以通富哦responseBody和responseText获取完整的响应数据
常见状态码,状态描述:
200 OK 客户端请求成功
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在,例如,输入了错误的URL
500 Interval server Error 服务器发生不可预期的结果
503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后,可能恢复正常
-post方式发送请求
1.创建XMLHttpRequest对象
var xhr =new XMLHttpReauest();
假设:这里是要传递的参数
var param ='username=' + uname.value + '&password=' + pw.value;
2.准备发送
//参数一:请求方式
// 参数二:请求地址
// 参数三:同步或者异步标志位,默认是 true 表示异步 false 表示同步
xhr.open('post','请求的URL地址字符串',true);
3.执行发送动作
post 请求一定要设置请求头
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send(param); // post 请求参数在这里传递
4.指定回调函数
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
var data =xhr.responseText;
console.log(data);
}
}
}