Ajax的步骤与封装 AJAX中的200和4分别是什么意思


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:表示请求响应的过程完毕

posted @ 2023-06-05 17:38  草莓的博客  阅读(19)  评论(0)    收藏  举报