前端发送请求格式

1.multipart/form-data格式发送请求参数

什么时候用:

  • 当后端API要求以表单的形式接收数据时,比如<input type="text" name="username"><input type="password" name="password">,这些数据通常以键值对的形式发送。
  • 当上传文件时,比如上传图片等等。。。

前端代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>springboot-test</title>
</head>
<body><form><label>用户名:</label><input id="username" type="text" placeholder="username"><br><label>密码:</label><input id="password" type="password" placeholder="password"><br><input id="submit" type="button" value="提交"></form><script src="js/axios.min.js"></script><script>const username = document.querySelector('#username')const password = document.querySelector('#password')const submit = document.querySelector('#submit')submit.addEventListener('click', async () => {const formData = new FormData()formData.append('username', username.value)formData.append('password', password.value)await axios({url: 'http://localhost:8080/test',method: 'post',data: formData}).then(result=>{console.log(result.data)}).catch(error=>{console.log(error)})})</script>
</body>
</html>

后端代码: 

package com.akbar.urltest.controller;import org.springframework.web.bind.annotation.*;@CrossOrigin
@RestController
@RequestMapping("test")
public class TestController {@PostMappingpublic String formDataTest(String username,String password) {System.out.println("----------------------------------------------------");System.out.println("username:"+username);System.out.println("password:"+password);System.out.println("----------------------------------------------------");return "后端成功收到username:"+username+",password:"+password;}
}

apifox:

 2.query string查询字符串

什么时候用:

  • 当你发送的数据需要附加在URL之后,作为GET请求的一部分时,使用查询字符串(query string)。
  • 当数据简单,如键值对,并且不需要在请求体中发送时。

前端代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>query-string发送请求参数</title>
</head>
<body><form><label>用户名:</label><input id="username" type="text" placeholder="username"><br><label>密码:</label><input id="password" type="password" placeholder="password"><br><input id="submit" type="button" value="提交"></form><script src="js/axios.min.js"></script><script>const username = document.querySelector('#username')const password = document.querySelector('#password')const submit = document.querySelector('#submit')submit.addEventListener('click', async () => {await axios({url: 'http://localhost:8080/test',method: 'get',params:{username: username.value,password: password.value}}).then(result=>{console.log(result.data)}).catch(error=>{console.log(error)})})</script>
</body>
</html>

后端代码: 

package com.akbar.urltest.controller;import org.springframework.web.bind.annotation.*;@CrossOrigin
@RestController
@RequestMapping("test")
public class TestController {@GetMappingpublic String formDataTest(String username,String password) {System.out.println("----------------------------------------------------");System.out.println("username:"+username);System.out.println("password:"+password);System.out.println("----------------------------------------------------");return "后端成功收到username:"+username+",password:"+password;}
}

apifox:

 3.application/json

  • 当你发送的数据是JavaScript对象,并且后端API期望接收JSON格式的数据时,使用application/json
  • 当数据结构复杂,需要以嵌套对象或数组的形式发送时。

前端代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>application/json格式发请求</title>
</head>
<body><form><label>用户名:</label><input id="username" type="text" placeholder="username"><br><label>密码:</label><input id="password" type="password" placeholder="password"><br><input id="submit" type="button" value="提交"></form><script src="js/axios.min.js"></script><script>const username = document.querySelector('#username')const password = document.querySelector('#password')const submit = document.querySelector('#submit')submit.addEventListener('click', async () => {await axios({url: 'http://localhost:8080/test',method: 'post',data:{username: username.value,password: password.value}}).then(result=>{console.log(result.data)}).catch(error=>{console.log(error)})})</script>
</body>
</html>

虽然我们在data里面写的不是json格式的数据,但是只要我们在data里面用JavaScript对象的格式写数据,axios会帮我们转换成json字符串格式。

后端代码:

package com.akbar.urltest.controller;import com.akbar.urltest.pojo.User;
import org.springframework.web.bind.annotation.*;@CrossOrigin
@RestController
@RequestMapping("test")
public class TestController {@PostMappingpublic String formDataTest(@RequestBody User user) {System.out.println("----------------------------------------------------");System.out.println("username:"+user.getUsername());System.out.println("password:"+user.getPassword());System.out.println("----------------------------------------------------");return "后端成功收到"+user;}
}

因为前端发送的时json字符串格式的对象(我暂时就这么理解的),所以后端接受要用对应的对象接受,比如user对象,然后别忘了用@RequestBody注解。

User.java实体类

package com.akbar.urltest.pojo;public class User {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +'}';}
}

apifox:

4.Path Parameters(路径参数) 

  • 当需要指定资源的唯一标识符时,使用路径参数。例如,获取特定用户的信息,URL可能是/users/{userId},其中{userId}是一个路径参数。
  • 路径参数通常用于GET、PUT、DELETE等请求方法,因为这些方法通常与获取、更新或删除特定资源相关。
  • 路径参数是URL的一部分,因此它们在请求的URL中清晰可见,这有助于客户端和服务器端理解请求的上下文。

前端代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>application/json格式发请求</title>
</head>
<body><input id="submit" type="button" value="提交"><script src="js/axios.min.js"></script><script>submit.addEventListener('click', async () => {const id = 1await axios({url: `http://localhost:8080/test/${id}`,method: 'get',}).then(result => {console.log(result.data)}).catch(error => {console.log(error)})})</script>
</body>
</html>

后端代码:

package com.akbar.urltest.controller;import com.akbar.urltest.pojo.User;
import org.springframework.web.bind.annotation.*;@CrossOrigin
@RestController
@RequestMapping("test")
public class TestController {@GetMapping("{id}")public String formDataTest(@PathVariable Integer id) {System.out.println("----------------------------------------------------");System.out.println("id:"+id);System.out.println("----------------------------------------------------");return "后端成功收到:"+id;}
}

apifox:

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

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

相关文章

html全局属性、框架标签

常用的全局属性&#xff1a; 属性名含义id 给标签指定唯一标识&#xff0c;注意&#xff1a;id是不能重复的。 作用&#xff1a;可以让label标签与表单控件相关联&#xff1b;也可以与css、JavaScript配合使用。 注意&#xff1a;不能再以下HTML元素中使用&#xff1a;<hea…

自动化部署-01-jenkins安装

文章目录 前言一、下载安装二、启动三、问题3.1 jdk版本问题3.2 端口冲突3.3 系统字体配置问题 四、再次启动五、配置jenkins5.1 解锁5.2 安装插件5.3 创建管理员用户5.4 实例配置5.5 开始使用5.6 完成 总结 前言 spingcloud微服务等每次部署到服务器上&#xff0c;都需要本地…

鸿蒙到底是不是纯血?到底能不能走向世界?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 2016年5月鸿蒙系统开始立项。 2018年美国开始经济战争&#xff0c;其中一项就是制裁华为&#xff0c;不让华为用安卓。 2019年8月9日华为正式发布鸿蒙系统。问题就出在这里&#xff0c;大家可以仔细看。 安卓一…

从零开始学五笔(三):横区字根

从 1 区开始讲解字根&#xff1a; 先介绍按键的区位号、口诀内容、口诀说明然后列每个字根能组成什么汉字&#xff0c;难拆字将用中括号标出 ‍ G 键 区位号&#xff1a;11 口诀&#xff1a;王旁青头戋&#xff08;兼&#xff09;五一 说明&#xff1a; 王旁&#xff1a…

VUE, element-plus, table分页表格列增加下拉筛选多选框,请求后台

简介 为了方便表格查询时可以筛选列的值&#xff0c;需要给列增加筛选框&#xff08;多选框&#xff09;&#xff0c;element-plus提供了列的filter字段&#xff0c;但是基于表格数据的筛选&#xff0c;不会重新请求后台&#xff0c;而且当前表格数据有多少个条目&#xff0c;…

荣耀MagicOS 9.0发布会及开发者大会丨一图读懂应用服务及商业合作分论坛

更多优质流量变现服务&#xff0c;可点击荣耀广告变现服务查看&#xff1b; 荣耀远航计划——应用市场【耀闪行动】全新上线&#xff0c;更多激励及资源扶持可点击荣耀应用市场耀闪行动查看。

香港大学联合上海AI LAB,提出首个人机交互一体化大模型

导读&#xff1a; 具身智能为人与机器人的交互带来了更多便利&#xff0c;利用大语言模型&#xff08;LLMs&#xff09;的推理能力&#xff0c;能够将人类的语言指令逐步转换为机器人可以理解的指令信号。 然而&#xff0c;由于缺乏环境信息作为机器人理解环境和人类指令的上…

FPGA开发verilog语法基础1

文章目录 主体内容1.1 逻辑值1.2 数字进制格式1.3 数据类型1.3.1 寄存器类型1.3.2 线网类型1.3.3 参数类型1.3.4 存储器类型 参考资料 主体内容 1.1 逻辑值 1&#xff0c;逻辑0&#xff0c;表示低电平 2&#xff0c;逻辑1&#xff0c;表示高电平 3&#xff0c;逻辑X&#xff0…

网站安全问题都有哪些,分别详细说明

网站安全问题涉及多个方面&#xff0c;以下是一些常见的网站安全问题及其详细说明&#xff1a; 数据泄露 问题描述&#xff1a;数据泄露是指网站存储的用户敏感信息&#xff08;如用户名、密码、信用卡信息等&#xff09;被非法获取。黑客可能通过SQL注入、XSS攻击等手段窃取这…

学习分布式系统我来助你!【基本知识、基础理论、设计模式、应用场景、工程应用、缓存等全包含!】

基本知识 什么是分布式 分布式系统是一种通过网络连接多个独立计算机节点&#xff0c;共同协作完成任务的系统架构&#xff0c;具有高度的可扩展性、容错性和并发处理能力&#xff0c;广泛应用于大数据处理、云计算、分布式数据库等领域。 通俗来讲&#xff1a;分布式系统就…

git入门操作(2)

文章目录 git入门操作&#xff08;2&#xff09;git diff 查看差异git diff gitignore忽略文件1.在代码仓库创建这个文件2.添加对 log 文件过滤 连接远程仓库与ssh配置远程仓库和本地仓库关联步骤分支基本操作步骤命令&#xff1a; 合并冲突分支合并逻辑1.新建分支 dev&#xf…

ONLYOFFICE 文档8.2版本已发布:PDF 协作编辑、改进界面、性能优化等更新

ONLYOFFICE 在线编辑器最新版本已经发布&#xff0c;其中包含30多个新功能和500多个错误修复。阅读本文了解所有更新。 关于 ONLYOFFICE 文档 ONLYOFFICE 是一个开源项目&#xff0c;专注于高级和安全的文档处理。坐拥全球超过 1500 万用户&#xff0c;ONLYOFFICE 是在线办公领…

Tcp_Sever(线程池版本的 TCP 服务器)

Tcp_Sever&#xff08;线程池版本的 TCP 服务器&#xff09; 前言1. 功能介绍及展示1.1 服务端连接1.2 客户端连接&#xff08;可多个用户同时在线连接服务端&#xff09;1.3 功能服务1.3.1 defaultService&#xff08;默认服务&#xff09;1.3.2 transform&#xff08;大小写转…

【Qt】qss 设置通过 addAction 添加的 QToolButton的图标

文章目录 1. 使用 QSS 和状态示例代码2. 使用 QSS 动态更改图标QSS 示例总结 在 Qt 中&#xff0c;QSS 不能直接用于为 QAction 设置图标&#xff0c;因为 QSS 主要用于样式和外观的设置&#xff0c;而不是用于数据&#xff08;如图标&#xff09;的设置。 不过&#xff0c;你…

HTB:Antique[WriteUP]

目录 连接至HTB服务器并启动靶机 1.After running an nmap scan on TCP ports we identify port 23 open. If we run another scan on UDP ports, which port do we find open? 2.What service is running on the UDP port that we identified in the previous question? …

Next.js14快速上手

文章目录 ***客户端***什么是Next项目在线地址官方文档项目创建查看项目目录结构app属于根目录 ***服务端***vercel数据库prisma 客户端 什么是Next Next.js 是一个用于构建全栈 Web 应用程序的 React 框架。您可以使用 React Components 来构建用户界面&#xff0c;并使用 Ne…

java实现日志按天打印

<?xml version"1.0" encoding"UTF-8"?> <configuration><!-- 应用名称&#xff1a;和统一配置中的项目代码保持一致&#xff08;小写&#xff09; --><property name"APP_NAME" value"mita-main"/><!--日…

AudioSetCaps数据集:包含190万对来自AudioSet录音的音频-字幕对。

2024-10-21&#xff0c;由西北工业大学、西安联丰声学技术有限公司、南洋理工大学、萨里大学和中国科学院声学研究所创建了AudioSetCaps数据集&#xff0c;包含190万对来自AudioSet录音的音频-字幕对。这个数据集在音频-文本检索和自动音频字幕两项下游任务上展现了卓越的性能&…

百度翻译以及另外三款翻译工具推荐!!!

在这个全球化的时代&#xff0c;翻译工具已经成为我们生活中不可或缺的一部分。我们需要使用翻译工具来克服语言障碍&#xff0c;无论是出国旅行、商务谈判还是学术研究。那么&#xff0c;市场上有各种各样的翻译工具。有哪些好用的在线翻译软件呢&#xff1f;别担心&#xff0…

系统架构设计师教程 第2章 2.1-2计算机系统及硬件 笔记

2.1计算机系统概述 ★☆☆☆☆ 计算机系统 (Computer System) 是指用于数据管理的计算机硬件、软件及网络组成的系统。 一般指由硬件子系统和软件子系统组成的系统&#xff0c;简称为计算机。 将连接多个计算机以实现计算机间数据交换能力的网络设备&#xff0c;称为计算机网…