AJAX入门

什么是 AJAX

[

怎么用 AJAX

语法:

引入 axios.js: https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js


什么是 URL

概念:URL 就是统一资源定位符,简称网址,用于访问网络上的资源

组成:


URL 查询参数

定义:浏览器提供给服务器的 额外信息 ,让服务器返回浏览器想要的数据
语法:http://xxxx.com/xxx/xxx ? 参数名1=值1 & 参数名2=值2


axios-查询参数

语法:使用 axios 提供的 params 选项
注意:axios 在运行时把参数名和值,会拼接到 url ?参数名=值
城市列表: http://hmajax.itheima.net/api/city?pname=河北省


常用请求方法和数据提交

常用方法请求

axios 请求配置

url:请求的 URL 网址
method :请求的方法, GET 可以省略(不区分大小写)
data :提交数据

axios 错误处理

场景:再次注册相同的账号,会遇到报错信息
处理:用更直观的方式,给 普通用户 展示错误信息

语法:在 then 方法的后面,通过点语法调用 catch 方法,传入回调函数并定义形参

HTTP 协议-请求报文

HTTP 协议:规定了浏览器发送及服务器返回内容的 格式
请求报文 :浏览器按照 HTTP 协议要求的 格式 ,发送给服务器的 内容

请求报文的格式
请求报文的组成部分有:

  1. 请求行:请求方法,URL ,协议
  2. 请求头: 以键值对的格式携带的附加信息,比如: Content-Type
  3. 空行:分隔请求头,空行之后的是发送给服务器的资源
  4. 请求体:发送的资源

HTTP 协议-响应报文

HTTP 协议:规定了浏览器发送及服务器返回内容的 格式
响应报文 :服务器按照 HTTP 协议要求的 格式 , 返回给浏览器的 内容
1.
响应行(状态行) :协议、 HTTP 响应状态码 、状态信息
2.
响应头 :以键值对的格式携带的附加信息,比如: Content-Type
3.
空行:分隔响应头,空行之后的是服务器返回的资源
4.
响应体 : 返回的资源

HTTP 响应状态码

HTTP 响应状态码:用来表明请求 是否成功 完成
比如: 404(服务器找不到资源)

接口文档

接口文档 : 描述 接口 的文章 (后端工程师)
接口 :使用 AJAX 和服务器通讯时, 使用的 URL , 请求方法 , 以及参数

form-serialize 插件

AJAX原理 - XMLHttpRequest

定义


关系:axios 内部采用 XMLHttpRequest 与服务器交互

使用 XMLHttpRequest

步骤:

  1. 创建 XMLHttpRequest 对象
  2. 配置 请求方法 和请求 url 地址
  3. 监听 loadend 事件,接收 响应结果
  4. 发起请求

XMLHttpRequest - 查询参数

定义:浏览器提供给服务器的 额外信息 ,让服务器返回浏览器想要的数据
语法:http://xxxx.com/xxx/xxx ? 参数名1=值1 & 参数名2=值2

XMLHttpRequest - 数据提交

需求:通过 XHR 提交用户名和密码,完成注册功能
核心:
请求头 设置 Content-Type:application/json
请求体 携带 JSON 字符串

Promise


好处:

  1. 逻辑更清晰
  2. 了解 axios 函数内部运作机制
  3. 能解决回调函数地狱问题

回调函数地狱
需求:展示默认第一个省,第一个城市,第一个地区在下拉菜单中
概念:在回调函数中 嵌套回调函数 ,一直嵌套下去就形成了回调函数地狱
缺点:可读性差,异常无法捕获,耦合性严重,牵一发动全身


Promise - 链式调用

概念:依靠 then() 方法会返回一个 新生成的 Promise 对象 特性,继续串联下一环任务,直到结束
细节:then() 回调函数中的 返回值 ,会影响新生成的 Promise 对象 最终状态和结果
好处:通过链式调用,解决回调函数嵌套问题

相关推荐
东风破_1 小时前
danci 项目(三):从 JSON 数据到 AI Coding,真实项目里的数据清洗、Prompt 和工程规范
前端·后端·node.js
东风破_1 小时前
danci 项目(一):从需求到架构,一个单词学习系统为什么会这样设计
前端·后端·node.js
蒲公英eric2 小时前
从客户端到服务端:DVWA DOM 型 XSS 模块完整漏洞分析教程
前端·web安全·ai·xss·dvwa·ai安全
单线程_012 小时前
从案例分析 Vue3 Tokenizer+Parser 源码三
前端·javascript·vue.js
顶点多余2 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
Setsuna_F_Seiei3 小时前
前端转型 Agent 开发 03 之 Agent Tools - 给 Agent 装上手脚
前端·agent·ai编程
jay神3 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
小磊哥er4 小时前
深入解构Claude Code - 第 8 篇 · 数据放哪、钱怎么算
javascript·ai编程
kyriewen5 小时前
我装了30多个Skill,给AI安排了8个岗位
前端·javascript·ai编程
风骏时光牛马5 小时前
大模型落地实践中的技术选型思路与方案对比
前端