AJAX发送请求

news/2024/10/23 20:43:34

AJAX发送请求

◼ AJAX 是异步的JavaScript 和 XML(Asynchronous JavaScript And XML)它可以使用JSON,XML,HTML 和text 文本等格式发送和接收数据;
◼ 如何来完成AJAX请求呢?第一步:创建网络请求的AJAX对象(使用XMLHttpRequest)第二步:监听XMLHttpRequest对象状态的变化,或者监听onload事件(请求完成时触发);第三步:配置网络请求(通过open方法);第四步:发送send网络请求;
     //1.新建XMLHttpRequest实例对象const XHR = new XMLHttpRequest()//2.监听状态的改变(宏任务)XHR.onreadystatechange = function(){// console.log(XHR.response)//2.1 如果我们的状态不是DONE状态直接返回if(XHR.readyState !== XMLHttpRequest.DONE){return}// 将字符串转成JSON对象const resJSON = JSON.parse(XHR.response)const banners = resJSON.data.banner// console.log(resJSON)console.log(banners)}//3.配置请求/*1.method:请求方式(get/post/delete/put/patch...)2.url:请求的地址*/XHR.open("get","http://123.207.32.32:8000/home/multidata")//4.发送请求("浏览器帮助我们发送请求")XHR.send()

XMLHttpRequest的state(状态)

  //1.新建XMLHttpRequest对象const XHR = new XMLHttpRequest()//2.监听状态的改变(宏任务)XHR.onreadystatechange = function(){//2.1 如果我们的状态不是DONE状态直接返回if(XHR.readyState !== XMLHttpRequest.DONE){return}// 2.2 确认拿到了数据// console.log(XHR.response)//2.3将拿到的字符串数据转化为对象const resJSON = JSON.parse(XHR.response)const lists = resJSON.data.banner.listconsole.log(resJSON)console.log(lists)}//3.配置请求/*1.method:请求方式(get/post/delete/put/patch...)2.url:请求的地址3.是否是异步的 true/异步,false/同步,默认是异步的*/// 实际开发要使用异步请求:不会阻塞后续代码的运行XHR.open("get","http://123.207.32.32:8000/home/multidata",false)//4.发送请求("浏览器帮助我们发送请求")XHR.send()// 同步必须等待拿到结果执行// console.log(XHR.response)console.log("--------------")console.log("++++++++++++++")console.log("**************")

XMLHttpRequest其他事件监听

  ◼ 除了onreadystatechange还有其他的事件可以监听loadstart:请求开始。progress: 一个响应数据包到达,此时整个response body 都在response 中。abort:调用 xhr.abort() 取消了请求。error:发生连接错误,例如,域错误。不会发生诸如404 这类的HTTP 错误。load:请求成功完成。timeout:由于请求超时而取消了该请求(仅发生在设置了timeout 的情况下)。loadend:在 load,error,timeout 或 abort 之后触发。◼ 我们也可以使用load来获取数据:// 使用onload请求数据XML.onload =function(){const resJSON = JSON.parse(XML.response)  const lists =resJSON.data.banner.listconsole.log(lists)}

响应数据和响应类型

◼ 发送了请求后,我们需要获取对应的结果:response属性XMLHttpRequest response 属性返回响应的正文内容;返回的类型取决于responseType的属性设置;
◼ 通过responseType可以设置获取数据的类型如果将responseType 的值设置为空字符串,则会使用text作为默认值。
◼ 和responseText、responseXML的区别:早期通常服务器返回的数据是普通的文本和XML,所以我们通常会通过responseText、responseXML来获取响应结果;之后将它们转化成JavaScript对象形式;目前服务器基本返回的都是json数据,直接设置为json即可;
     const XML= new XMLHttpRequest()XML.onload =function(){// 获取响应数据console.log(XML.response)// console.log(XML.responseText)}// 3.告知XHR获取到的数据的类型XML.responseType="json"//3.配置请求数据// XML.open("get","http://123.207.32.32:8000/home/multidata")//-->jsonXML.open("get","http://123.207.32.32:1888/01_basic/hello_json")//-->json// XML.open("get","http://123.207.32.32:1888/01_basic/hello_text")//-->text// XML.open("get","http://123.207.32.32:1888/01_basic/hello_xml")//-->xml//4.发送请求XML.send()

HTTP响应的状态status

◼XMLHttpRequest的state是用于记录xhr对象本身的状态变化,并非针对于HTTP的网络请求状态。
◼如果我们希望获取HTTP响应的网络状态,可以通过status和statusText来获取:
const xhr = new XMLHttpRequest()
xhr.onload =function(){console.log(xhr.response)console.log(xhr.status)//200console.log(xhr.statusText)//OK
}
xhr.responseType = "json"
xhr.open("get","http://123.207.32.32:1888/01_basic/hello_json")
xhr.send()

 const xhr = new XMLHttpRequest()xhr.onload =function(){console.log(xhr.response)// 根据状态码判断请求是否成功if(xhr.status >=200 && xhr.status<300){console.log(xhr.response)}else{console.log(xhr.status)//200console.log(xhr.statusText)//OK}}// xhr.onerror =function(){//   console.log("error",xhr.status,xhr.statusText)// }xhr.responseType = "json"xhr.open("get","http://123.207.32.32:8000/home/hello_json")// xhr.open("get","http://123.207.32.32:8000/home/multidata")xhr.send()

GET/POST请求传递参数

◼ 在开发中,我们使用最多的是GET和POST请求,在发送请求的过程中,我们也可以传递给服务器数据。
◼ 常见的传递给服务器数据的方式有如下几种:方式一:GET请求的query参数方式二:POST请求x-www-form-urlencoded 格式方式三:POST请求FormData格式方式四:POST请求JSON 格式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/75199.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

实验二 类和对象_基础编程1

实验任务一:#pragma once#include <string>// 类T: 声明 class T { // 对象属性、方法 public:T(int x = 0, int y = 0); // 普通构造函数T(const T &t); // 复制构造函数T(T &&t); // 移动构造函数~T(); // 析构函数void adjust(int ra…

第二章学习笔记

第2章 模型评估与选择 2.1 经验误差与过拟合 错误率(error rate):分类错误的样本数占样本总数的比例称为错误率。 精度(accuracy):精度 = 1 - 错误率。 如果在m个样本中有a个样本分类错误,那么错误率,精度 = 1 - E。 学习器的实际预测输出与样本的真实输出之间的差异称为误…

food

厨具使用 高压锅使用详细参考和评论区:https://www.bilibili.com/video/BV1wr4y1n7Ej/?spm_id_from=333.337.search-card.all.click&vd_source=5e8f069711510b3788382a0a03ff38e5本文来自博客园,作者:我爱读论文,转载请注明原文链接:https://www.cnblogs.com/life131…

超千款鸿蒙原生游戏上架,华为游戏中心成就非凡游戏体验

10月22日,原生鸿蒙之夜暨华为全场景新品发布会在深圳举行,华为正式为用户带来全新的原生鸿蒙操作系统(HarmonyOS NEXT),这是HarmonyOS诞生以来最大的更新。发布会公布了当前HarmonyOS NEXT整体应用生态的进展,其中鸿蒙游戏领域令人瞩目。以《王者荣耀》、《和平精英》、《…

spring boot整合Swagger

你可能尝试过写完一个接口后,自己去创建接口文档,或者修改接口后修改接口文档。多了之后,你肯定会发生一个操作,那就是忘记了修改文档或者创建文档(除非你们公司把接口文档和写接口要求得很紧密😓忘记写文档就扣工资?,否则两个分离的工作总是有可能遗漏的)。而swagge…

# 20222402 2024-2025-1 《网络与系统攻防技术》实验二实验报告

1.实验内容 本周学习内容 ①Shellcode技术 ②后门概念:后门就是不经过正常认证流程而访问系统的通道。 ③后门案例:XcodeGhost等。 ④后门技术:狭义后门:特指潜伏于操作系统中专门做后门的一个程序,“坏人”可以连接这个程序,远程执行各种指令。 管控功能实现技术 自启动…