当前位置: 首页 > news >正文

Ajax从零到实战

  💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。



非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
 

前言

本栏目是根据黑马程序员的网课来整理的笔记,也会结合我的一些个人见解,来记录自己学习Ajax的过程,俗话说,好记性不如烂笔头,小郑喜欢在学习的过程中记笔记,记下自己在学习过程中难以理解的知识点,反复练习,加深印象,小郑打算在这个暑假的第一个月学习完Ajax从0到1实现项目,希望广大网友一起监督学习,互相进步!

目录

什么是 AJAX ?

引入 axios.js 文件到自己的网页中

URL 查询参数

1. 查询参数的语法 

2. axios 如何携带查询参数?

查询地区列表案例

axios错误处理

请求报文--错误排查

form-serialize 插件


什么是 AJAX ?

  • 使用浏览器的 XMLHttpRequest 对象 与服务器通信

  • 浏览器网页中,使用 AJAX技术(XHR对象)发起获取省份列表数据的请求,服务器代码响应准备好的省份列表数据给前端,前端拿到数据数组以后,展示到网页

引入 axios.js 文件到自己的网页中

axios.js文件链接:https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js

axios函数的使用语法

axios({url: '目标资源地址'
}).then((result) => {// 对服务器返回的数据做后续处理
})

URL 查询参数

1. 查询参数的语法 

  • 在 url 网址后面用?拼接格式:XXXX?参数名1=值1&参数名2=值2

  • 参数名一般是后端规定的,值前端看情况传递即可

2. axios 如何携带查询参数?

查询城市列表的 url地址:http://hmajax.itheima.net/api/city

axios({url: '目标资源地址',params: {参数名: 值}
}).then(result => {// 对服务器返回的数据做后续处理
})

查询地区列表案例

查询地区: http://hmajax.itheima.net/api/area

/*获取地区列表: http://hmajax.itheima.net/api/area查询参数:pname: 省份或直辖市名字cname: 城市名字*/
// 目标: 根据省份和城市名字, 查询地区列表
// 1. 查询按钮-点击事件
document.querySelector('.sel-btn').addEventListener('click', () => {// 2. 获取省份和城市名字let pname = document.querySelector('.province').valuelet cname = document.querySelector('.city').value// 3. 基于axios请求地区列表数据axios({url: 'http://hmajax.itheima.net/api/area',params: {pname,cname}}).then(result => {// console.log(result)// 4. 把数据转li标签插入到页面上let list = result.data.listconsole.log(list)let theLi = list.map(areaName => `<li class="list-group-item">${areaName}</li>`).join('')console.log(theLi)document.querySelector('.list-group').innerHTML = theLi})
})

axios错误处理

当用户已经注册过,再次点击注册按钮的时候,就会报错,那么我们要怎么处理呢?

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>常用请求方法和数据提交</title>
</head><body><button class="btn">注册用户</button><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script>/*注册用户:http://hmajax.itheima.net/api/register请求方法:POST参数名:username:用户名(中英文和数字组成,最少8位)password:密码  (最少6位)目标:点击按钮,通过axios提交用户和密码,完成注册*/document.querySelector('.btn').addEventListener('click', () => {axios({url: 'http://hmajax.itheima.net/api/register',method: 'POST',data: {username: '大学生小郑123',password: '7654321'}}).then(result => {console.log(result)}).catch(error => {console.log(error.response.data.message)alert(error.response.data.message)})})</script>
</body></html>

请求报文--错误排查

当我点击登录的时候,发现密码错误,那么我们要怎么排查错误呢?

流程:

1.确认信息是否在请求报文正确携带

2.发现密码错误 返回到代码查看

form-serialize 插件

       使用serialize函数,快速收集表单元素的值

       * 参数1:要获取哪个表单的数据

       *  表单元素设置name属性,值会作为对象的属性名

       *  建议name属性的值,最好和接口文档参数名一致

       * 参数2:配置对象

       *  hash 设置获取数据结构

       *    - true:JS对象(推荐)一般请求体里提交给服务器

       *    - false: 查询字符串

       *  empty 设置是否获取空值

       *    - true: 获取空值(推荐)数据结构和标签结构一致

       *    - false:不获取空值

      

<script src="./lib/form-serialize.js"></script><script>document.querySelector('.btn').addEventListener('click', () => {const form = document.querySelector('.example-form')const data = serialize(form, { hash: true, empty: true })// const data = serialize(form, { hash: false, empty: true })// const data = serialize(form, { hash: true, empty: false })console.log(data)})</script>

❤️❤️❤️小郑是普通学生水平,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

http://www.lryc.cn/news/399701.html

相关文章:

  • 编程参考 - 在C++移动构造函数声明中使用noexcept
  • Vue2/Vue3实现全局/局部添加防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。
  • GuLi商城-商品服务-API-属性分组-获取分类属性分组
  • 安全测试理论
  • 序列化和反序列化
  • OpenCV中使用Canny算法在图像中查找边缘
  • 基于springboot+vue+uniapp的机电公司管理信息系统
  • 电子期刊制作实战教程:从零开始制作
  • 11.FreeRTOS_事件组
  • Python爬虫-爬取三国演义文本数据-bs4
  • html5——列表、表格
  • 【Python字符串攻略】:玩转文字,编织程序的叙事艺术
  • element form表单中密码框被自动赋值,并默认背景色为白色,手动输值后背景色才是自己配置的背景色,与表单的自动填充有关
  • 【UE5.1 角色练习】15-枪械射击——子弹发射物
  • Zynq7000系列FPGA中的DMA控制器的编程限制
  • 超简易高效的 AI绘图工具—与sd-webui一致界面,6G显存最高提升75%出图速率!(附安装包)
  • ArduPilot开源代码之OpticalFlow_backend
  • 设计模式探索:适配器模式
  • OpenCV 寻找棋盘格角点及绘制
  • 【深度学习】PyTorch深度学习笔记02-线性模型
  • 10.FreeRTOS_互斥量
  • EtherCAT总线冗余让制造更安全更可靠更智能
  • Android IdleHandler源码分析
  • Mac安装stable diffusion 工具
  • CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)
  • python的简单爬取
  • 【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容(含视频)
  • 【学术会议征稿】第三届智能电网与能源系统国际学术会议
  • 01. 课程简介
  • iOS热门面试题(三)