1)、AJAX的步骤:
ajax的流程,readyState和status的意思
1、创建XMLHttpRequest
let xhr = new XMLHttpRequest()
2、设置(请求方式,请求路径,请求参数)
xhr.open("get", "regSave.php?username=jzm&userpass=123", true)
3、设置回调函数(后端有响应时,调用的回调函数)
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
xhr.responseText //后端响应的内容,如:php中的echo 后面跟的内容
}
}
4、发送
xhr.send();
//readyState:请求响应的状态(请求响应进行到哪一步了)
//status:响应结果的描述,是个状态码(数字)
2)、封装ajax的代码:
function ajax2110UseObj(obj){
let defaultObj = {
method:"get",
url:"#",
params:"",
callback:null,
isAsync:true
}
for(let key in defaultObj){
// 把obj里没有传入的属性使用defaultObj的对应属性。
if(obj[key]==undefined){
obj[key]=defaultObj[key];
}
}
// 1、创建XMLHttpRequest对象
let xhr = new XMLHttpRequest();
// 2、设置请求相关信息
let urlAndParams = obj.url;
if(obj.method.toLowerCase()=="get"){
urlAndParams += "?"+obj.params
}
xhr.open(obj.method,urlAndParams,obj.isAsync);
// 3、设置回调函数(后端响应时,调用的函数)
xhr.onreadystatechange = function(){
if(xhr.readyState==4 && xhr.status==200){
obj.callback && obj.callback(xhr.responseText);
}
}
if(obj.method.toLowerCase()=="get"){
// 4、发送请求
xhr.send();
}else if(obj.method.toLowerCase()=="post"){
// 如果是post方式,必须设置请求头。
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(obj.params);
}
}
3)、200和4分别是什么意思
readyState属性:表示ajax从请求到响应过程中的状态,即:请求响应过程中进行到了哪一步?readyState的取值是0 ---- 4。
0:表示刚创建好对象XMLHttpRequest
1:open函数调用完毕后,
2:表示后端接收到了响应
3:表示后端正在处理
4:表示后端处理完毕(即:请求响应的过程结束了)
readyState==4:表示请求响应的过程完毕
标签:200,readyState,obj,请求,响应,Ajax,xhr,AJAX,method From: https://www.cnblogs.com/sansan-1314/p/17458548.html