AJAX入门

什么是 AJAX

![](https://i-blog.csdnimg.cn/direct/e764bebe618142a1aeaf7abab22dc2a4.png) 怎么用 AJAX ![](https://i-blog.csdnimg.cn/direct/5ea4ae0542ca4a68acc32a365e6c7c03.png)**语法:** > 引入 axios.js: https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js > ![](https://i-blog.csdnimg.cn/direct/5abba335328c4fc8a1c525217602130e.png) *** ** * ** *** ## 什么是 URL ![](https://i-blog.csdnimg.cn/direct/bde70dc2f2c5481c94f852158eac6a2d.png) ![](https://i-blog.csdnimg.cn/direct/0d8c95c011a34694852b60b4bb42c4d5.png) > 概念:URL 就是统一资源定位符,简称网址,用于访问网络上的资源 组成: ![](https://i-blog.csdnimg.cn/direct/d31440e48a074e8a9be37544658946a0.png) ![](https://i-blog.csdnimg.cn/direct/47917cbe2c114c32948fd5a5da798683.png) *** ** * ** *** ## URL 查询参数 > 定义:浏览器提供给服务器的 额外信息 ,让服务器返回浏览器想要的数据 > 语法:http://xxxx.com/xxx/xxx ? 参数名1=值1 \& 参数名2=值2 ![](https://i-blog.csdnimg.cn/direct/0248cf6f77f94491b2108c472c4be9b9.png) **axios-查询参数** > 语法:使用 axios 提供的 params 选项 > 注意:axios 在运行时把参数名和值,会拼接到 url ?参数名=值 > 城市列表: http://hmajax.itheima.net/api/city?pname=河北省 ![](https://i-blog.csdnimg.cn/direct/c9964896fd40444babe24dd7653cca28.png) *** ** * ** *** ## **常用请求方法和数据提交** **常用方法请求** ![](https://i-blog.csdnimg.cn/direct/cf1896f3b8a94a9c8781ed07f0e196bc.png) **axios 请求配置** > url:请求的 URL 网址 > method :请求的方法, GET 可以省略(不区分大小写) > data :提交数据 > ![](https://i-blog.csdnimg.cn/direct/5537ae7353da4a6cb55aa6fe55ee85be.png) ## axios 错误处理 > 场景:再次注册相同的账号,会遇到报错信息 > 处理:用更直观的方式,给 普通用户 展示错误信息 ![](https://i-blog.csdnimg.cn/direct/c3452ea72953487fb4a4c0b22abe9ffa.png) > **语法:在 then 方法的后面,通过点语法调用 catch 方法,传入回调函数并定义形参** > > ![](https://i-blog.csdnimg.cn/direct/e9a46e3f96a14b19b61b8e78f2de4698.png) ## HTTP 协议-请求报文 > HTTP 协议:规定了浏览器发送及服务器返回内容的 格式 > 请求报文 :浏览器按照 HTTP 协议要求的 格式 ,发送给服务器的 内容 > 请求报文的格式 > 请求报文的组成部分有: > 1. 请求行:请求方法,URL ,协议 > 2. 请求头: 以键值对的格式携带的附加信息,比如: Content-Type > 3. 空行:分隔请求头,空行之后的是发送给服务器的资源 > 4. 请求体:发送的资源 > > ![](https://i-blog.csdnimg.cn/direct/6b7aa0ad034d4c8baf8b25d7a6420cc4.png) > > ![](https://i-blog.csdnimg.cn/direct/1412e25f82ba49d6a044d9d9c328dc45.png) ## HTTP 协议-响应报文 > HTTP 协议:规定了浏览器发送及服务器返回内容的 格式 > 响应报文 :服务器按照 HTTP 协议要求的 格式 , 返回给浏览器的 内容 > 1. > 响应行(状态行) :协议、 HTTP 响应状态码 、状态信息 > 2. > 响应头 :以键值对的格式携带的附加信息,比如: Content-Type > 3. > 空行:分隔响应头,空行之后的是服务器返回的资源 > 4. > 响应体 : 返回的资源 > ![](https://i-blog.csdnimg.cn/direct/89e7fdc05b384c279d3af8c1464daaf4.png) **HTTP 响应状态码** > HTTP 响应状态码:用来表明请求 是否成功 完成 > 比如: 404(服务器找不到资源) ![](https://i-blog.csdnimg.cn/direct/f7a23f4abb48456d9dbc93a058aeece3.png) ## 接口文档 > 接口文档 : 描述 接口 的文章 (后端工程师) > 接口 :使用 AJAX 和服务器通讯时, 使用的 URL , 请求方法 , 以及参数 ## form-serialize 插件 ![](https://i-blog.csdnimg.cn/direct/9043b930c57e44d0b9c3f12b0ea2e4d5.png) ## AJAX原理 - XMLHttpRequest 定义 ![](https://i-blog.csdnimg.cn/direct/224dca37678a4f9ba9cea8322c1d4d2c.png) 关系:axios 内部采用 XMLHttpRequest 与服务器交互 ![](https://i-blog.csdnimg.cn/direct/2209f2b47f5649e08d3cac3f5f0f57be.png) ### 使用 XMLHttpRequest > 步骤: > 1. 创建 XMLHttpRequest 对象 > 2. 配置 请求方法 和请求 url 地址 > 3. 监听 loadend 事件,接收 响应结果 > 4. 发起请求 ![](https://i-blog.csdnimg.cn/direct/8c672f469b6d4ef89db4d0b9677d8ddd.png) ### XMLHttpRequest - 查询参数 > 定义:浏览器提供给服务器的 额外信息 ,让服务器返回浏览器想要的数据 > 语法:http://xxxx.com/xxx/xxx ? 参数名1=值1 \& 参数名2=值2 ![](https://i-blog.csdnimg.cn/direct/9e523bd873dd44e5b29dafd43168b950.png) ### XMLHttpRequest - 数据提交 > 需求:通过 XHR 提交用户名和密码,完成注册功能 > 核心: > 请求头 设置 Content-Type:application/json > 请求体 携带 JSON 字符串 ![](https://i-blog.csdnimg.cn/direct/cb9bda978c964c75a0c17e1c7c57327d.png) ## Promise > ![](https://i-blog.csdnimg.cn/direct/2af55ea5be2d438583fb19e9aeac6294.png) > 好处: > 1. 逻辑更清晰 > 2. 了解 axios 函数内部运作机制 > 3. 能解决回调函数地狱问题 > ![](https://i-blog.csdnimg.cn/direct/4409564c52674b73b8eb27133032bff1.png) ![](https://i-blog.csdnimg.cn/direct/2f921067870341439d342dec002fae73.png) > 回调函数地狱 > 需求:展示默认第一个省,第一个城市,第一个地区在下拉菜单中 > 概念:在回调函数中 嵌套回调函数 ,一直嵌套下去就形成了回调函数地狱 > 缺点:可读性差,异常无法捕获,耦合性严重,牵一发动全身 > ![](https://i-blog.csdnimg.cn/direct/c93de7a345954d4685def829a9157d08.png) Promise - 链式调用 > 概念:依靠 then() 方法会返回一个 新生成的 Promise 对象 特性,继续串联下一环任务,直到结束 > 细节:then() 回调函数中的 返回值 ,会影响新生成的 Promise 对象 最终状态和结果 > 好处:通过链式调用,解决回调函数嵌套问题 ![](https://i-blog.csdnimg.cn/direct/d7bc6a7a523549348a49e78ce0b2253b.png)

相关推荐
Larcher17 分钟前
新手也能学会,100行代码玩AI LOGO
前端·llm·html
徐子颐30 分钟前
从 Vibe Coding 到 Agent Coding:Cursor 2.0 开启下一代 AI 开发范式
前端
小月鸭42 分钟前
如何理解HTML语义化
前端·html
jump6801 小时前
url输入到网页展示会发生什么?
前端
诸葛韩信1 小时前
我们需要了解的Web Workers
前端
brzhang1 小时前
我觉得可以试试 TOON —— 一个为 LLM 而生的极致压缩数据格式
前端·后端·架构
yivifu2 小时前
JavaScript Selection API详解
java·前端·javascript
这儿有一堆花2 小时前
告别 Class 组件:拥抱 React Hooks 带来的函数式新范式
前端·javascript·react.js
十二春秋2 小时前
场景模拟:基础路由配置
前端
六月的可乐2 小时前
实战干货-Vue实现AI聊天助手全流程解析
前端·vue.js·ai编程