同步_异步请求和Ajax并利用axios框架简化

目录

同步和异步

原生的Ajax

创建XMLHttpRequest对象

常用方法

常用属性

axios框架


同步和异步

同步请求:发送请求后,会做出回应,回应的内容会覆盖浏览器中的内容,这样会打断其他正常的操作,显得不太友好,并且请求时会携带所有的信息。

异步请求:前端正常输入时,可以同时与后端进行交互,后端相应的数据不会影响前端的正常操作,可以使用一个js中提供的对象,向后端发送请求, 服务器响应的内容,会被js对象接收.然后在js中,用接收到内容的,局部的更新网页,这样整个过程页面不会出现刷新,覆盖操作。

原生的Ajax

异步技术,Ajax其实质是利用浏览器提供的一个特殊的对象(XMLHttpRequest) 异步地向服务器发送请求

创建XMLHttpRequest对象

XMLHttpRequest对象:发送请求到服务器并获得返回结果。

所有现代浏览器 都内建了 XMLHttpRequest 对象,通过一行简单的 JavaScript 代码,我们就可以创建 XMLHttpRequest 对象。举例:对一个提交账号表单做简单验证,反馈给后端

html 复制代码
<body>
		<script>
			function checkAccount(account){
				var httpobj = new XMLHttpRequest();
				httpobj.open("get","http://127.0.0.1:8080/webBack/reg?account="+account,true);
				httpobj.send();
				httpobj.onreadystatechange = function(){
					//接收后端的数据
					document.getElementById("aid").innerHTML = httpobj.responseText;
				}
			}
		</script>
		<form method="post">
			账号:<input type="text" name="account" value="" onblur="checkAccount(this.value)"><span id="aid"></span><br>
		</form>
</body>

常用方法

|--------------------------------|--------------------------------------------------------------------------------------------|
| 方法名 | 说明 |
| open(method,URL,async) | 建立与服务器的连接 method参数指定请求的HTTP方法,典型的值是GET 或POST URL参数指定请求的地址 async参数指定是否使用异步请求,其值为true或 false |
| send(content) | 发送请求 content参数指定请求的参数 |
| setRequestHeader(header,value) | 设置请求的头信息 |

常用属性

onreadystatechange:事件,指定回调函数

readystate: XMLHttpRequest的状态信息

responseText:获得响应的文本内容

axios框架

1.下载axios文件 https://unpkg.com/axios/dist/axios.min.js

2.导入项目

3.发送请求:和上文实现的效果是一样的,但代码更加简介

javascript 复制代码
<script>
			function checkAccount(account){
				axios.get("http://127.0.0.1:8080/webBack/reg?account="+account).then(function(resp){
					document.getElementById("aid").innerHTML=resp.data;//默认json格式
				})
			}
</script>
相关推荐
无人生还7 分钟前
从 Vue3 到 React · 快速上手系列第 11 篇:状态管理
前端·vue.js·react.js
GuWenyue9 分钟前
90%前端写React TS都踩坑!一套父子组件+Hooks完整实战,彻底搞懂类型约束
前端·react.js
Hilaku18 分钟前
当 AI 一天写完一周的代码,我们还剩什么优势?
前端·javascript·程序员
无责任此方_修行中21 分钟前
换个版本号就能升级?可没那简单:pnpm 11 升级踩坑记
javascript·后端·npm
尘世中一位迷途小书童23 分钟前
无人机航线里的云台角度怎么调?Cesium 做了个视锥 + 鹰眼联动
前端·javascript·数据可视化
张元清24 分钟前
React useMeasure Hook:用 ResizeObserver 测量 DOM 元素 (2026)
javascript·react.js
思码梁田27 分钟前
CSS display 属性:从元素类型转换到隐藏元素的实用指南
前端·css·display·inline·block·none·inline-block
Csvn28 分钟前
⚡ Vite 依赖预构建(optimizeDeps)的 3 个经典坑:改了源码不生效、新增依赖 404、缓存怎么清都不行
前端
A242073493038 分钟前
Vue3 + TypeScript:后端数据在表格内渲染后进行增删改的完整实现步骤
前端·javascript·typescript
他们叫我 悦儿遥遥雨42 分钟前
.NET 8 Web开发入门(六):Blazor 全栈开发——告别 JavaScript 焦虑
前端·javascript·.net