(基础)AJAX概念和axios使用、URL、请求方法和数据提交、HTTP协议、接口、form-serialize插件

news2024/9/20 1:22:23

AJAX概念和axios使用

AJAX概念

AJAX就是使用XMLHttpRequest对象与服务器通信,它可以使用JSON、XML、HTML和text文本等格式发送和接收数据,AJAX最吸引人的就是它的异步特性,也就是说它可以在不重新刷新页面的情况下与服务器通信,交换数据或更新页面

axios

基于XMLHTTPRequest封装
语法:
1.引入axios
https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js

    <!-- 引入axios.js文件 -->
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script>
        console.log(axios)
    </script>

在这里插入图片描述

2.使用axios函数
传入配置对象
再用.then回调函数接收结果,并做后续处理

axios({
url:‘目标资源地址'
}).then((result)=>{
//对服务器返回的数据做后续处理
})
  <!-- 引入axios.js文件 -->
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script>

        let div = document.querySelector('div')
        // 2.使用axios给提供的函数,进行数据请求
        axios({
            url: 'https://hmajax.itheima.net/api/province'
        }).then(
            // function(result){  // 在then回调函数中,第一个参数就是我们服务端返回的数据结果   }
            // 箭头函数的写法
            result => {
                console.log(result)
                console.log(result.data)
                console.log(result.data.list)
                // 把省份写回到页面
                //还可以使用结构获取所需数据 const {data:{list}}=result
                const data = result.data.list
                div.innerHTML = data.join('<br>')
            }

        )
    </script>

在这里插入图片描述

在这里插入图片描述

URL

在这里插入图片描述

URL查询参数

浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据

语法:使用axios提供的params选项
注意:axios在运行时把参数名和值,会拼接到url?参数名=值
axios({
url:'目标资源地址',
params:{
参数名:值
}
}).then(
对服务器返回的数据做后续处理
)
    <!-- 引入axios.js文件 -->
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script>

        let div = document.querySelector('div')
        // 2.使用axios给提供的函数,进行数据请求
        axios({
            url: 'https://hmajax.itheima.net/api/city',
            params: {
                pname: '北京'
            }
        }).then(
            // function(result){  // 在then回调函数中,第一个参数就是我们服务端返回的数据结果   }
            // 箭头函数的写法
            result => {
                const { data: { list } } = result
                console.log(result)
                console.log(list)
            }
        )
    </script>

在这里插入图片描述

请求方法和数据提交

请求方法:对服务器资源要执行的操作
GET:获取数据
POST:数据提交
PUT:修改数据(全部)
DELETE:删除数据
PATCH:修改数据(部分)

axios请求配置

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

错误处理

浏览器报错

在这里插入图片描述

axios报错

在这里插入图片描述
错误信息在错误对象中的response->data->message
在这里插入图片描述

axios错误处理

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

axios({
//请求选项
}).then(result=>{
//处理数据
}).catch(error=>{
//处理错误
})

在这里插入图片描述

HTTP协议-报文

请求报文(请求标头)

组成
1.请求行(第一行):请求方法,URL,协议
2.请求头(第2行到第11行):以键值对的格式携带的附加信息,比如:Content-Type(发送给后台的数据格式)(关注这个就可以)
3.空行:分隔请求头,空行之后市发送给服务器的资源
在这里插入图片描述

在这里插入图片描述
空行在新版本的浏览器中去掉了
载荷就是请求体

在这里插入图片描述
发送的数据json数据(json数据的键和值都用“ ”包裹)

XHR(网络资源请求)
请求报文(错误排查)

先打开控制台,再执行操作
打开XHR,打开所发送的这一条请求
先看请求标头,检查请求方式和请求地址是否正确
再看请求体(请求载荷)

响应报文

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

在这里插入图片描述
在这里插入图片描述
预览是处理过的响应体
在这里插入图片描述

在这里插入图片描述

响应状态码(用来表明请求是否成功完成)

404:服务器找不到资源

在这里插入图片描述

接口

接口文档

描述接口的文章

form-serialize插件

作用:快速收集表单元素的值

//表单必须存在name属性
const data=serialize(document.querySelector('form')   //不写参数的话得到的是一个键=值的查询参数
const data=serialize(document.querySelector('form',{hash:true})  //会得到一个对象格式的数据
const data=serialize(document.querySelector('form' {hash:true,empty:true})  .//未输入的表单以控制代替,而不是空对象,能够获取为空的input,可以判断是否有值


使用:参考文章

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

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

相关文章

将MySQL数据库在idea中引入

输入SQL语句后运行即可

Redis技术学习|实战项目记录|短信登录(重点:拦截器)+ Redis代替session存储用户登录信息

学习资料声明 黑马程序员的Redis学习视频&#xff1a;黑马程序员Redis入门到实战教程 需要用到的知识&#xff1a;linux&#xff08;推荐韩顺平老师的教程&#xff0c;学到p30&#xff0c;创建好虚拟机和简单的几个命令就好。&#xff09;SSM。SpringBoot。 还用到了MybatisPl…

java每日一题——幸运囚犯(合集遍历,查询数据练习)

前言&#xff1a; 合集基本学完了&#xff0c;做做题巩固下知识点。打好基础&#xff0c;daydayup! 题目如下&#xff1a; 目前有100名囚犯&#xff0c;每个囚犯的编号是1-200之间的随机数。现在要求依次随机生成100名囚犯的编号&#xff08;要求这些囚犯的编号是不能重复的&a…

现货黄金做对冲的具体方法

现货黄金做对冲的具体方法是运用金融衍生工具和策略&#xff0c;以减轻或消除持有现货黄金所面临的市场风险。具体而言&#xff0c;投资者可通过期货合约、期权、掉期等金融工具来实现对冲&#xff0c;保障其投资价值不受金价波动的负面影响。 &#xfeff; 期货合约在对冲中…

前端应用开发实验:Vue的特性

目录 实验目的实验内容图片浏览功能代码实现效果 简单购物车功能代码实现效果 汇率换算功能代码实现效果 关于需要准备的内容&#xff0c;如Vue的下载就不多赘述了 实验目的 &#xff08;1&#xff09;掌握vue实例编写的语法和基本选项的使用 &#xff08;2&#xff09;在实际…

【漏洞复现】5. Fastjson 1.2.24反序列化漏洞(CVE-2017-18349)复现

文章目录 1. 预备知识2. 漏洞复现2.1 漏洞介绍2.2 漏洞原理分析2.2.1 Fastjson序列化/反序列化原理2.2.2 Fastjson反序列化漏洞原理 2.3 实验环境2.3.1 靶场搭建 2.3.2 攻击机配置2.3.3 Java反序列化工具marshalsec&#xff1a;2.4 漏洞复现2.4.1 漏洞探测 2.5 漏洞修复 1. 预备…

Linux:离线安装 jdk-8(配置Java环境)

Linux&#xff1a;离线安装 jdk-8&#xff08;配置Java环境&#xff09; 1、jdk简介2、检查已安装的Java版本&#xff0c;并卸载3、准备安装包4、解压安装包、进行安装5、设置环境变量(全局/个人) &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f…

数据库系统概论-第12章 数据库管理系统

12.1 数据管理系统的基本功能 12.2 数据库管理系统的系统结构 12.3 语言处理层 12.4 数据存取层 12.5 缓冲区管理 12.6 数据库的物理组织 12.7 小结

docker方式进行pytorch多机多卡分布式训练

docker ip共享与gpu指定 1)ip共享 docker网络有多种,这里选择host直接用宿主机的ip 2)指定gpu docker方式进行pytorch多机多卡分布式训练 nvidia docker 容器介绍链接:https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/ docker用的nvidia官方镜像…

5G里面NR,gNB,en-gNB,ng-eNB是什么意思

不得不提一个国际组织&#xff0c;叫国际电信联盟(ITU, International Telecommunication Union)&#xff0c;简称国际电联。我们先看看国际电联的自我介绍&#xff1a; 国际电信联盟 『国际电联 (国际电信联盟) 是主管信息通信技术事务&#xff08;ICT&#xff09;的联合国机…

Jmeter-基础元件使用(二)-属性及对数据库简单操作

一、Jmeter属性 当我们想要在不同线程组中使用某变量&#xff0c;就需要使用属&#xff0c;此时Jmeter属性的设置需要函数来进行set和get操作 1.创建set函数 2.然后采用Beanshell取样器进行函数执行 3.调用全局变量pro_id 4.将上面生成的函数字符串粘贴到另一个线程组即可…

全球首个AI程序员诞生,码农饭碗一夜被砸!10块IOI金牌华人团队震撼打造,996写代码训练模型

全球首位AI软件工程师Devin诞生了&#xff0c;它掌握全栈技能&#xff0c;云端部署、底层代码、改bug、训练和微调AI模型都不在话下。最可怕的是&#xff0c;它完全不怕996&#xff0c;老黄的预言是彻底成真了&#xff01; 就在刚刚&#xff0c;世界上第一位AI程序员Devin诞生…

AI程序员已诞生,如何保住自己饭碗?

一、背景 全球首位AI程序员Devin的诞生无疑引发了业界对职业前景和人工智能影响的热烈讨论。AI程序员的出现确实预示着人工智能技术在编程领域的重大突破&#xff0c;它们能够进行自主学习、修复bug、掌握全栈技能&#xff0c;并且在特定场景下展现出了替代部分人类程序员工作…

Windows创建Linux虚拟环境-WSL

使用工具WSL 官方安装使用文档 安装 WSL | Microsoft Learn 开始通过 WSL 使用 VS Code | Microsoft Learn 具体过程 1. cmd以“管理员身份运行”&#xff0c;执行以下指令&#xff0c;安装完成后&#xff0c;电脑重启&#xff0c;安装完成生效。 wsl --install 2. 查看…

基于yolov5的单目测距实现与总结+相机模型+标定

写这篇文章的目的是为了总结我之前看的标定&#xff0c;相机模型以及单目测距的内容&#xff0c;如果有错误&#xff0c;还请不吝赐教。 参考链接&#xff1a; 相机模型、相机标定及基于yolov5的单目测距实现 深度学习目标检测目标追踪单目测距 单目测距代码部署&#xff08;目…

jmeter的函数助手使用方法

如某个上传文件接口&#xff0c;一个文件只能同时被一个接口调用&#xff0c;如果被并发同时调用就会报错 创建多个测试文件 比如50并发&#xff0c;创建更多的文件防止并发多时随机数生成重复 生成随机数函数 工具–函数助手-选择random-输入范围&#xff08;1-696&#…

在阿里云服务器添加ssh,方便远程登录

前言&#xff1a; 添加ssh密钥步骤&#xff1a; chmod 700 .ssh #创建ssh cd .ssh chmod 700 authorized_keys #添加权限密钥 vim authorized_keys #编辑密钥 添加本地电脑ssh密钥 vim /etc/ssh/sshd_config #更改ssh配置文件 配置文件 # no default banner path #Banner no…

[Qt学习笔记]Qt使用MFC编译生成dll库在无编程环境电脑出现无法加载dll的问题

目录 1、 问题介绍2、 问题分析3、 问题总结和思考 1、 问题介绍 在项目实践中&#xff0c;使用Qt调用了一个vs创建的dll库&#xff0c;在本机上编译和release后的exe可以加载对应的dll文件&#xff0c;将exe拷贝到有vs编程环境的电脑上也可以加载对应的dll文件&#xff0c;但…

开篇介绍——蓝桥赛前冲刺(JavaB组)

开篇介绍 蓝桥杯赛事时间安排 专栏内容介绍 在接下来的几天时间内&#xff0c;老汉会不间断的更新该专栏&#xff0c;主要针对蓝桥杯B组赛事高频考点的复习巩固&#xff0c;其中包括老汉认为较优质的算法讲解&#xff08;文章、视频&#xff09;&#xff0c;以及对应的真题、…

GPU 使用率监测及可视化

1. 使用 nvidia-smi可视化 直接在终端输入nvidia-smi动态查看GPU的使用情况watch -n 0.5 nvidia-smi其中0.5表示每隔0.5秒更新一次,时间可以调整 2. 使用nvitop可视化 2.1 nvitop的使用 (1) 安装 pip install nvitop(2) 查看GPU使用率 nvitop