首页 > 其他分享 >Ajax的步骤与封装 AJAX中的200和4分别是什么意思

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

时间:2023-06-05 17:44:12浏览次数:37  
标签:200 readyState obj 请求 响应 Ajax xhr AJAX method


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

相关文章

  • python requests请post接口200,打印提示Unexpected character encountered while parsi
    pythonrequests发起httppost请求,带参数,带请求头,代码设置检查没有问题runpy文件提示Unexpectedcharacterencounteredwhileparsingvalue:p.Path,问题一:body请求形式未进行json格式data=json.dumps(body)dumps的功能是将字典类型转换未json格式的字符串类型。......
  • BL102采集DL/T645-2007规约电表说明
    本文主要讲述了钡铼技术BL102物联网网关如何通过RS485采集DL/T645规约电表BL102是一款采集西门子、三菱、欧姆龙、台达、AB、施耐德等各种PLC数据转换为ModbusTCP、OPCUA、MQTT、ThingsBoard等协议的工业物联网网关。BL102下行支持:西门子、三菱、欧姆龙、台达、AB、施耐德等各种P......
  • 传奇DBC2000一机多区补丁v2.0——传奇工具下载
    DBC一机多区补丁v2.0说明:打完补丁需要重启服务器才能生效。不管多少个区,是根据你的服务器配置来决定的 。q系列的机器差不多2个界面搞定12-16个区。软件只是修改了dbc的参数,方便快捷,完美解决一机多区时dbc报错的问题。链接:https://pan.baidu.com/s/1AypGNQvgrdiemh3lomP8bQ提取码......
  • SpringMVC 转换ajax的json数据乱码问题
    在springmvc3中,已经集成了Jackson(json处理器)来处理数据输出json格式,spring中封装的类是[color=blue]org.springframework.http.converter.json.MappingJackson2HttpMessageConverter[/color]这个json转换器,如果是[color=red]springmvc3.2[/color]之前的版本,可以使用[color=b......
  • XSLT 介绍与 Google Ajaxslt
    最近研究ajaxslt的心得[url]http://bright895.blog.163.com/blog/static/182699233201142685114192/[/url]XSLT的英文标准名称为eXtensibleStylesheetLanguageTransformation。根据W3C的规范说明书(http://www.w3.org/TR/xslt),[color=red]最早设计XSLT的用意是帮助XML文档(doc......
  • 细数AJAX框架一箩筐
    [color=red][b]1.Purejavascript:ApplicationFrameworks[/b][/color][color=blue][b]1.1Bindows(成立于2003年)[/b][/color]Backbase是一个通过DHTML、JavaScript、CSS和HTML等技术强劲联合起来的一套完整的Windows桌面式的WEB应用程序解决方案。Bindows无需下载安装客户......
  • B2005 字符三角形
    题目描述输入两个整数$a,b$,输出它们的和($|a|,|b|\le{10}^9$)。注意Pascal使用integer会爆掉哦!有负数哦!C/C++的main函数必须是int类型,而且C最后要return0。这不仅对洛谷其他题目有效,而且也是NOIP/CSP/NOI比赛的要求!好吧,同志们,我们就从这一题开始,向着大牛......
  • B2002 Hello,World!
    Hello,World!题目描述编写一个能够输出Hello,World!的程序。提示:使用英文标点符号;Hello,World!逗号后面没有空格。H和W为大写字母。输入格式输出格式样例#1样例输入#1无样例输出#1Hello,World!代码#include<bits/stdc++.h>usingnamespacestd;int......
  • COS20019云计算架构
    COS20019CloudComputingArchitecture-Assignment02ScalableCloudComputingArchitecture(30%)Table1.ModificationHistoryDate(created/modified)Purposes2023-04-28Createdtheassignment2023-05-06Finalizetheassignment2023-05-16Revisedassuggested......
  • bzoj 1007: [HNOI2008]水平可见直线(模拟栈)
    http://www.lydsy.com/JudgeOnline/problem.php?id=10071007:[HNOI2008]水平可见直线TimeLimit: 1Sec  MemoryLimit: 162MBSubmit: 7644  Solved: 2922[Submit][Status][Discuss]Description在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往......