axios带参请求-返回HTTP Status 400 -Required String parameter xxx is not present类型异常

本文介绍了解决前端使用axios向后端SpringBoot发送带参请求时出现的“HTTPStatus400-RequiredStringparameterxxxisnotpresent”异常问题。通过分析问题原因并调整后端参数接收方式,实现了正常的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做一个博客项目,用axios向后端springboot发送带参请求一直报“HTTP Status 400 -Required String parameter xxx is not present类型异常”,经过一番研究,终于解决。

1.错误写法

前端axios请求函数:

import axios from 'axios'
export function postMd(value){
   return  axios.post('/saveMd', {
                        content: value
                     })
                     .then(function (response) {
                        console.log(response);
                     })
                     .catch(function (error) {
                        console.log(error);
                     });
}

前端vue具体请求:

<script>
//取得postMd函数
import {postMd} from '@/api/article'
export default {
   data(){
      return {
         value: '123',
      }
   },
   methods:{
      save(value){
      	//发送axios的post带参请求,content=value
         var result=postMd(value);
         console.log(result); 
      }
   }
}
</script>

后端springboot接收:

@RestController
public class ArticleController {
	//这里用"api"+"/saveMd"是在vue中用代理的方法解决了跨域问题,前面都要加/api
    @RequestMapping("/api/saveMd")
    public String saveMd(@RequestParam String content){
        System.out.println(content);
        return "okok";

    }
}

结果后台一直报错:

Required String parameter 'content' is not present

2.解决方法

分析了一下原因,原来用axios带参请求,前端传来的是json字符串,
在这里插入图片描述
难怪后台springboot 用@RequestParam获取不到,需要用@RequestBody接收。
后端做如下修改:

@RestController
public class ArticleController {

    @RequestMapping("/api/saveMd")
    					//注意用@RequestBody接收json格式参数
    public String saveMd(@RequestBody String content){
        System.out.println(content);
        return "okok";

    }
}

修改完后一切正常。
之后有一篇博文综合阐释了axios带参请求的前后端正确写法,参考如下:
https://www.cnblogs.com/nongzihong/p/12886684.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值