axios的传参问题

springboot+axios传参问题 res.data:获取后台响应的数据。前端传过去的参数名称一定要与后台接收的参数名称一致。后台代码跟第一种方式传参代码一致。在使用axios之前需要引入axios.js文件。访问之后你会发现报错400。value:参数名称要跟前端的传来参数名称一致。第一种方式:就是将后台接收参数方式使用。params:固定写死的否则参数无效。RequestParam注解接收参数。@RequestBody接收实体类。第二种方式:改变前端传参写法。 阅读详情

axios官方文档

axios的参数问题

axios提供了两种配置请求到达方式:

1. 通过向axios传递相关配置

axios(config)
axios(url[, config])

2. 使用别名
	axios#get(url[, config])
	axios#delete(url[, config])
	axios#post(url[, data[, config]])
	axios#put(url[, data[, config]])
	axios#head(url[, config])
	axios#options(url[, config])
下面是官方文档对axios(config)的详细说明
	
	{
	   // `url` 是用于请求的服务器 URL
	  url: '/user',
	
	  // `method` 是创建请求时使用的方法
	  method: 'get', // default
	
	  // `baseURL` 将自动加在 `url` 前面,除非 `url` 是一个绝对 URL。
	  // 它可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL
	  baseURL: 'https://some-domain.com/api/',
	
	  // `transformRequest` 允许在向服务器发送前,修改请求数据
	  // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法
	  // 后面数组中的函数必须返回一个字符串,或 ArrayBuffer,或 Stream
	  transformRequest: [function (data, headers) {
	    // 对 data 进行任意转换处理
	    return data;
	  }],
	
	  // `transformResponse` 在传递给 then/catch 前,允许修改响应数据
	  transformResponse: [function (data) {
	    // 对 data 进行任意转换处理
	    return data;
	  }],
	
	  // `headers` 是即将被发送的自定义请求头
	  headers: {'X-Requested-With': 'XMLHttpRequest'},
	
	  // `params` 是即将与请求一起发送的 URL 参数
	  // 必须是一个无格式对象(plain object)或 URLSearchParams 对象
	  params: {
	    ID: 12345
	  },
	
	   // `paramsSerializer` 是一个负责 `params` 序列化的函数
	  // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/)
	  paramsSerializer: function(params) {
	    return Qs.stringify(params, {arrayFormat: 'brackets'})
	  },
	
	  // `data` 是作为请求主体被发送的数据
	  // 只适用于这些请求方法 'PUT', 'POST', 和 'PATCH'
	  // 在没有设置 `transformRequest` 时,必须是以下类型之一:
	  // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
	  // - 浏览器专属:FormData, File, Blob
	  // - Node 专属: Stream
	  data: {
	    firstName: 'Fred'
	  },
	
	  // `timeout` 指定请求超时的毫秒数(0 表示无超时时间)
	  // 如果请求话费了超过 `timeout` 的时间,请求将被中断
	  timeout: 1000,
	
	   // `withCredentials` 表示跨域请求时是否需要使用凭证
	  withCredentials: false, // default
	
	  // `adapter` 允许自定义处理请求,以使测试更轻松
	  // 返回一个 promise 并应用一个有效的响应 (查阅 [response docs](#response-api)).
	  adapter: function (config) {
	    /* ... */
	  },
	
	 // `auth` 表示应该使用 HTTP 基础验证,并提供凭据
	  // 这将设置一个 `Authorization` 头,覆写掉现有的任意使用 `headers` 设置的自定义 `Authorization`头
	  auth: {
	    username: 'janedoe',
	    password: 's00pers3cret'
	  },
	
	   // `responseType` 表示服务器响应的数据类型,可以是 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'
	  responseType: 'json', // default
	
	  // `responseEncoding` indicates encoding to use for decoding responses
	  // Note: Ignored for `responseType` of 'stream' or client-side requests
	  responseEncoding: 'utf8', // default
	
	   // `xsrfCookieName` 是用作 xsrf token 的值的cookie的名称
	  xsrfCookieName: 'XSRF-TOKEN', // default
	
	  // `xsrfHeaderName` is the name of the http header that carries the xsrf token value
	  xsrfHeaderName: 'X-XSRF-TOKEN', // default
	
	   // `onUploadProgress` 允许为上传处理进度事件
	  onUploadProgress: function (progressEvent) {
	    // Do whatever you want with the native progress event
	  },
	
	  // `onDownloadProgress` 允许为下载处理进度事件
	  onDownloadProgress: function (progressEvent) {
	    // 对原生进度事件的处理
	  },
	
	   // `maxContentLength` 定义允许的响应内容的最大尺寸
	  maxContentLength: 2000,
	
	  // `validateStatus` 定义对于给定的HTTP 响应状态码是 resolve 或 reject  promise 。如果 `validateStatus` 返回 `true` (或者设置为 `null` 或 `undefined`),promise 将被 resolve; 否则,promise 将被 rejecte
	  validateStatus: function (status) {
	    return status >= 200 && status < 300; // default
	  },
	
	  // `maxRedirects` 定义在 node.js 中 follow 的最大重定向数目
	  // 如果设置为0,将不会 follow 任何重定向
	  maxRedirects: 5, // default
	
	  // `socketPath` defines a UNIX Socket to be used in node.js.
	  // e.g. '/var/run/docker.sock' to send requests to the docker daemon.
	  // Only either `socketPath` or `proxy` can be specified.
	  // If both are specified, `socketPath` is used.
	  socketPath: null, // default
	
	  // `httpAgent` 和 `httpsAgent` 分别在 node.js 中用于定义在执行 http 和 https 时使用的自定义代理。允许像这样配置选项:
	  // `keepAlive` 默认没有启用
	  httpAgent: new http.Agent({ keepAlive: true }),
	  httpsAgent: new https.Agent({ keepAlive: true }),
	
	  // 'proxy' 定义代理服务器的主机名称和端口
	  // `auth` 表示 HTTP 基础验证应当用于连接代理,并提供凭据
	  // 这将会设置一个 `Proxy-Authorization` 头,覆写掉已有的通过使用 `header` 设置的自定义 `Proxy-Authorization` 头。
	  proxy: {
	    host: '127.0.0.1',
	    port: 9000,
	    auth: {
	      username: 'mikeymike',
	      password: 'rapunz3l'
	    }
	  },
	
	  // `cancelToken` 指定用于取消请求的 cancel token
	  // (查看后面的 Cancellation 这节了解更多)
	  cancelToken: new CancelToken(function (cancel) {
	  })
	}
1.axios.get:
  1. 字符串拼接法:
  • 前端传送数据:

  • 有两种写法:

    
    	data: {
            message:''		 
       //当message类型为String或int时,后端既可以用String接受,又可以用int接受
       	 },
    
    		//第一种写法 
    
    	axios.get("/haha?message="+this.message).then((response)=>{
    	
                    console.log("发送成功");           
                    
                },(error)=>{})
    
    //第二种写法,在config中通过param参数
    	axios.get('/user',
    		{params: {message: this.message}}
    		)
    
    //第二种写法,完全通过配置来创建请求
    	axios({url:'/user',
    		   method:'get',
    		   params: {message: this.message}
    		   }
    		)
    
  • 后端接受:

    @GetMapping("/haha")
    public void s(String message){    
        System.out.println(message);
    }
    

    当所传参数为一个或多个(类型可以是字符串,数字,数组),后端接受的类型。可以都用String类型统一接收,也可以用相对应的数据类型接收;

2.axios.post:
  1. 字符串拼接法:

    对于axios.post,使用字符串拼接传递参数的用法与get方法相同。

  2. body传参:
    • body传参是axios.post所中经常用到的一部分。因为大多数情况下,我们需要传输的参数是一个含有多个参数的JOSN对象。
    • body传参有两种形式,一种是直接以JSON对象格式传送,另一种是转化为字符串后传送。

    以JOSN对象格式传送:

    • 前端传输数据:
    
      axios.post("/haha",{name:this.name,id:this.id},{   // JSON对象中的键值对,可以少于Person对象的成员变量
                    headers: {
                        "Content-Type": "application/json;charset=utf-8"
                    }}).then((response)=>{
                    console.log("发送成功");
                    console.log(response);
                },(error)=>{})
    
    

    或者:

    axios.post("/haha",JSON.stringify({id:this.id,name:this.name})).then((response)=>{
                console.log("发送成功");
                console.log(response);
            },(error)=>{})
    
    

    后端接收数据:

    @PostMapping("/haha")
     public void s(@RequestBody Person p){   //使用@RequestBody将获取的数据绑定到Person对象,person对象中含有name,id属性
     																		
    
        System.out.println(p);
    
    }
    
    	  @PostMapping("/haha")
        public void ha(@RequestBody String  haha){
        Map<String, String> map = JSON.parseObject(haha, new HashMap<String,String>().getClass());         
          //将接收的String类型变量(JSON对象转化过来的),转换为Map集合
        System.out.println(map.get("name"));
        System.out.println(map.get("age"));
        System.out.println(haha);
    

``

当然,也可以用这种方式接收JSON类型以外的其他数据类型,只需用@RequestBody绑定好对应的数据类型就行

转化为字符串后传送:

  • 前端传送数据:

    
     axios.post("/haha",Qs.stringify({name:this.name})).then((response)=>{
                    console.log("发送成功");
                    console.log(response);
                },(error)=>{})
           }
    
  • 后端接收数据:

    
    	 @PostMapping("/haha")
    		public void s( Person p){
    	    System.out.println(p);	    
    	}
    

当前端传递参数为一个数组时,并且该数组不是后端某一个对象中的参数时,可以用axios.post的方式传递,后端用@RequestBody注解接收。

注意:
  • axios默认的 content-type 是 application/json,即JSON形式字符串
  • Qs.stringfy()会将conten-type 转化为 application/x-www-form-urlencoded,即表单形式
  • JSON.stringfy(),会将conten-type 转化为 application/x-www-form-urlencoded,但是此时的Request Payload是json字符串,因此需要在配置中将conten-type 转化为 application/json,
  • config中配置参数,直接以data显示,是有区别的。
  • params:{}。与表单提交类似,相当于将参数拼接到地址后面,后台可以用基础类型接收,也可以用对象接收。
  • data:{}。content-type为 application/json。将data中的参数以JSON字符串的形式传递。
海上AI导航系统:技术架构与行业应用解析 计算机视觉与强化学习技术在海上导航系统中的应用正逐步改变传统航运业。通过多模态传感器融合技术,现代AI导航系统能够实现高精度的物体识别与实时路径规划,有效解决能见度依赖、决策延迟等核心痛点。以Orca AI的SeaPod系统为例,其结合了NVIDIA GeForce RTX 4070的边缘计算能力与多光谱协同识别技术,在恶劣环境下仍能保持稳定性能。这类系统不仅提升了航行安全性,还通过优化航线显著降低燃油消耗,在东京湾、马六甲海峡等繁忙水域展现出巨大价值。随着毫米波雷达融合方案的测试推进,未来海上导航将突破极 阅读详情

相关推荐

Tessent ATPG进阶:解锁多种Fault Model的工程实践与选型指南

本文深入探讨Tessent ATPG中多种Fault Model的工程实践与选型策略,涵盖Stuck-at、Transition、Bridge等核心模型的应用场景与配置技巧。通过实际案例解析,展示如何组合不同Fault Model提升芯片测试覆盖率,特别针对汽车电子、超低功耗芯片等复杂场景提供专业解决方案。

weixin_30219613的博客 199

axios发送请求,传递多个参数的方法

逆风优雅的博客 7439

Zabbix华为交换机光衰告警

zabbix使用自动发现监控huawei网络设备光衰

qq_31651649的博客 4529

批量新增之axios传多参(传数组和其他类型参数)

这个问题困了挺久的。其实连我自己都不知道从什么时候开始,喜欢围绕着功能去思考代码怎么实现,也时常问自己除了这种方法还有其他的方法没有。 要批量新增的是一张中间表,用的方法是mybatis-plus IService类中的saveBatch方法,它是根据实体类对象的集合进行批量新增。因为主键是自增的,所以我只需要获取歌曲id的集合和歌单id。歌单的id可以从歌单页面跳往歌曲页面是传过来,所以我们只需要获取歌曲id的集合。 //这是要批量新增的中间表 public class ListSong implemen

weixin_44542401的博客 3838

ROS2仿真抓取分拣案例,使用myCobot 280机械臂结合ROS2系统搭建机械分拣站

本案例展示了如何利用myCobot 280 urdf模型构建一个对象分类站,并在ROS2 jazzy中完成运动规划。

m0_71627844的博客 2126

使用RV1126实现人脸识别——将Facenet模型转换为RKNN模型

在本文中,我们将探讨如何在RV1126芯片上实现人脸识别,并将Facenet模型转换为RKNN(Rockchip Neural Network)模型,以在RV1126上进行高效的人脸识别。Fine-tuning是指在预训练模型的基础上,使用自己的数据集进行进一步训练,以适应特定的任务。同时,我们需要下载Facenet模型的预训练权重,这些权重将作为我们的基础模型。综上所述,我们详细介绍了如何在RV1126上实现人脸识别,并将Facenet模型转换为RKNN模型。方法将模型导出为RKNN格式的文件。

code_program481的博客 1524

使用axios发送多个参数的post请求(Servlet)

字符串,并通过字节流传递(服务器通过字节流接收),并且。来获取参数,并且请求的方式仍然是。来获取请求参数,是获取不到的。请求的数据被封装在了。

m0_52733659的博客 4202

肖特基二极管的反向恢复过程

本博客简述肖特基二极管反向恢复过程。

记得诚 1万+

axios post传多个参数

1.请求头设置为 ‘Content-Type’:‘application/x-www-form-urlencoded’axios post请求 默认格式为Content-Type: application/json,此时可以接收到username与password,code为null。2.定义包装类 即将localauth与code定义为一个新的类。如果我们给实体类设置@RequestBody。实体类:localauth。此时接收到参数都为null。例如我这里传递三个参数。

qq_53972864的博客 3251

【LAMMPS学习】五、LAMMPS命令(1) LAMMPS 输入脚本

本部分描述了 LAMMPS 输入脚本的格式以及其中的命令如何用于定义 LAMMPS 模拟。主要包括以下内容。

荷塘阅色 2645

广东省道路工程检测练习试题(判断题)真题

按下式计算小于某粒径颗粒质量百分数:X=(A/B)x100( )49.、挖坑灌砂法适用于在现场测定基层(或底基层)、砂石路面及路基土的各种材料压实层的密度和压实度,但不适用于填石路堤等有大孔洞或大孔隙材料的压实度检测。95.挖坑灌砂法适用于在现场测定基层(或底基层)、砂石路面及路基土的各种材料压实层的密度和压实度,但不适用于填石路堤等有大孔洞或大孔隙材料的压实度检测( )107.以干密度 pd 为纵坐标,含水率w为横坐标,绘 pd-w 关系曲线,曲线上峰值点的纵、横坐标分别为最大干密度和最佳含水率( )

ZShy001238的博客 685

axios用post提交多个参数踩坑

axios post会自动根据你提交的类型选择 当 data 为 URLSearchParams 对象时设置为 application/x-www-form-urlencoded;charset=utf-8, 当 data 为普通对象时,会被设置为 application/json;charset=utf-8 application/json;charset=utf-8 要用@RequestBo...

weixin_44483079的博客 1万+

YOLOv8改进 | Conv篇:基于FasterBlock与C2f结构的二次创新,参数量下降70万【附保姆级代码】

通过引入FasterBlock二次创新C2f结构,我们成功地对YOLOv8模型进行了优化,显著降低了其参数量,并提升了推理速度,而精度保持不变甚至有所提升。该模型在多个实际应用场景中展现出了优异的性能,尤其是在嵌入式设备、移动端和自动驾驶等领域,具有广泛的应用潜力。未来的研究将进一步优化模型结构,探索更多的应用场景,为目标检测技术的发展做出贡献。

一键难忘的博客 3215

使用 axios 传参问题

使用 post, put 传参数时,都可以通过下面这种方式来传递数据 data。 this.axios.post('url', data).then(() => {}).catch(() => {}) 但是遇到一个问题,一般传递参数时,类似于列表方式传递就会成功。但是类似于 username: 'lily' ,如果传递参数 this.username 就不会成功,后台...

weixin_30371875的博客 184

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Vue跨域以及几种vue axios传参问题

Vue跨域以及几种vue axios传参问题 前言:springboot和vue前后端分离项目,分别需要在不同的电脑上进行项目启动,所以在同一个无线网下,如果两个电脑之间不能ping成功那么没有前后端项目通信的基础,所以要保证两个电脑能够ping 成功。 方式:设置电脑入站规则 一、vue跨域问题 1、跨域介绍: 浏览器在发送ajax请求时发现请求的...

CoderYin的博客 1655

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

axios传参问题(新)

文档上面调试显示的格式:x-www-form-urlencoded。所以:query参数接在url后面,strings 作为data。在文档上面发送请求,看到payload要formdata格式。在文档上面发送请求,看到payload的格式。params一般是接在url后面。解决:接口加上header。

Web_Notes的博客 268

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

axios中post请求传参问题

1. post请求传参失败 问题原因: axios发送post请求的content-Type的值是application/json,参数在请求体中以json对象的形式传递,而springMvc框架接受post请求的参数的类型必须要求是键值对的形式 解决办法: axios文档中针对该问题提出了2种解决方法: 使用浏览器提供的URLSearchParams的Api: 请求时使用 application/x-www-form-urlencoded axios 会默认序列化 JavaScr

Forever Young 6463

axios中用params传参时遇到的问题

今天在学习VUE时遇到了一个关于请求传参的问题,百思不得其解,记录一下 环境 后端用的是node.js 前端用的是vue框架 问题代码 addParams () { this.$refs.addFormRef.validate(async vaild => { if (!vaild) return //问题代码 const { data: res } = await this.$http({ url: `categori

m0_46360310的博客 2458

axios传参问题

axios中data和params传参

waouya的博客 917

总结axios传参的问题

总结axios传参的问题

ll123456789_的博客 957

Vue中axios PUT传参问题

问题 this.putRequest('/updatePassword',{newpassword:this.form.newpassword}).then(resp => { console.log('值是:' + resp.message) }) export const putRequest=(url,parms)=>{ return axios({ method: 'put',

有幸添砖java 3742

解决axios delete请求无法传参问题

个人博客地址:https://congz666.gitee.io/ post,put可以正常传参,但是delete请求无法传参 查阅一下axios各方法需要的参数 get<T = any>(url: string, config?: AxiosRequestConfig): AxiosPromise<T>; delete(url: string, config?: AxiosRequestConfig): AxiosPromise; head(url: string, c

Congz的博客 1943

Vue中axios POST传参问题

最近做了一个后台的管理系统,为了实现回调,不得不进行层层的嵌套(callback hell)。第二版本的时候决定使用es6的新特性Promise对代码进行优化,为了兼容各浏览器环境,引入了一个兼容的promise.js。网上关于Promise的用法很多,就不做过多介绍。为了一次搞清这一新特性,决定研究一下这个promise.js的源码。( promise.js的下载地址)。

进无止进 1万+

axios delete传参_Vue开发问题(axios封装)

关于Vue开发的问题(axios封装)在博客中查找vue的axios封装,发现其中案例还是很多的,自己项目中有些需求不够。比如1、Content-Type 请求头 application/x-www-form-urlencoded和application/json两种方式的应用2、请求方式增加delete方式,3、出现跨域,以及其他问题。做了些修改。做个记录首先放出引用的源代码引用来源于 vue ...

weixin_39969340的博客 1043

Vue:axios请求传参问题

今天在 vue 前后端分离时。遇到传参的问题,在网上看了看资料,现在来分享一下,以便以后使用。 主要的请求类型有:get,post,put,delete,patch 注:每种类型传递参数的方法都不一样,注意区分。 1、get 请求 (放在params 中或者直接拼接到路径中) Axios.get('demo/url', { params: { id: 123, ...

奋斗的哼哼 1122
上一篇: 复合主键
下一篇: @ControllerAdvice
Forrit
博客等级 码龄6年 75粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值