vue向后端传对象数组,400错误

遇到的错误

  1. 首先说一下需求:收费的时候需要批量的修改对应医技检查表和增加新的费用详细(药品费用也是如此)

这个时候遇到了一个 超级大Bug,前端传的数据里面包括了:

  1. 一个int型的id数组
  2. 装有将要增加新费用详细的所有数据的对象数组

这个时候前端我使用$qs.stringify()方法来处理参数,这个时候前端 会报415错误,上网搜索后发现报错的原因是:因为传输的参数是json对象,而请求的不是json格式.

用了网上的方法在main.js中加了个axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';(后来发现,这没什么卵用,而且还会对前面的代码有影响,大家千万别用,解决方案看后面)

好了,改完后报400,也就是后端反序列化参数不能对应成功

解决方案

  1. 将我们的对象数组直接以字符串的形式传给后端
  2. 在后端通过阿里提供的fastjson来处理解析

Maven依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.43</version>
</dependency>

前端代码

let params = {let params = { params: patientCostsList }

this.$axios.post('http://localhost:8088/getcharge/test?ids='+ids,params)

.then((response) => {

if (response.data == 'ok') {

that.$message.success("交费成功")

} else {

that.$message.error("交费失败")

} })

后端代码

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中使用post请求,如果遇到400错误,有一些常见的原因和解决办法可以尝试。 首先,400错误通常表示请求的语法有问题,可能是因为请求参数不正确或不完整。根据你提供的引用内容,可能是因为没有将接口文档中的所有必需参数都正确递给后端后端可能需要你递除了"data"和"name"之外的其他参数。因此,你需要仔细查看接口文档,并确保你递了所有必需的参数。 另外,根据引用,你可以尝试使用qs.stringify()来序列化数据,并将请求的Content-Type设置为"application/x-www-form-urlencoded",以使数据输模式与后端一致。 另外,根据引用,如果你使用的是@RequestBody注解,应该使用"application/json"作为Content-Type;如果你使用的是@RequestParam注解,应该使用"application/x-www-form-urlencoded"作为Content-Type。请确保你在请求中正确设置了Content-Type。 综上所述,你可以尝试以下解决办法来解决Vuepost请求400错误的问题: 1. 确保你递了接口文档中所有必需的参数。 2. 尝试使用qs.stringify()来序列化数据,并将请求的Content-Type设置为"application/x-www-form-urlencoded"。 3. 根据注解的类型,正确设置请求的Content-Type为"application/json"或"application/x-www-form-urlencoded"。 请根据你的具体情况和接口文档的要求进行调整和尝试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [在vue项目中使用axios发送post请求出现400错误](https://blog.csdn.net/weixin_44320032/article/details/126035863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Vue3】发送post请求出现400 Bad Request 报错](https://blog.csdn.net/m0_62811051/article/details/127953881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值