竹一一 2024-04-22 15:00 采纳率: 10.5%
浏览 61

数组传回后端总显示为空怎么解决

Vue前端传回一个数据模型

img

里面包含两个数组List,后端ApplyReport类有两个List成员变量,用于接收前端发送的List数据,前端控制台输出确定有数据,为什么每次都会报错说后端的list为空?

img

前端的函数

img

img

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-22 15:00
    关注

    引自免费微信小程序:皆我百晓生

    看起来你正在尝试在 Vue.js 应用程序中将数据传递给后端 API,但遇到了问题。根据错误信息,getMedicantList() 方法返回的是 null 或者是未定义,导致无法调用其 size() 方法。这通常意味着从前端传递的数据没有正确地被后端接收到。

    首先,确保你在 Vue.js 中创建的数据模型(对象)已经包含了你需要传递的所有数据,并且这些数据在发送之前已经被填充了正确的值。检查一下 applyReport.value 是否在发送前就已经包含了完整的 medicantList 和 equipmentList 数据。

    // 检查 applyReport.value 的内容
    console.log(applyReport.value);
    

    然后,在发送请求时,确保数据是以合适的形式传递给后端。在你的例子中,你使用了 request.get(),这通常是用来发送 GET 请求的,而 GET 请求一般不会携带请求体(payload)。对于更新操作,你应该使用 POST、PUT 或 PATCH 请求,它们可以携带请求体。所以,应该修改为 request.post()request.put()

    // 修改为 POST 请求
    export const ApplyService = (applyData) => {
      return request.post('/apply', applyData);
    };
    

    接下来,检查你的后端代码,确保你正确处理了接收到的数据。在 Java 中,如果你使用 Spring Boot,你应该在控制器方法上使用 @RequestBody 注解来自动绑定 JSON 转换后的对象到参数。

    // 假设 ApplyReport 是你的 POJO 类
    @PostMapping("/apply")
    public ResponseEntity<?> saveApply(@RequestBody ApplyReport applyReport) {
        // 这里应该是你的业务逻辑,例如保存数据到数据库等
        // ...
    }
    

    这样,Spring Boot 将会自动将请求体中的 JSON 数据转换为你指定类型的对象(ApplyReport),并将其作为参数传递给方法。

    如果以上步骤都正确执行,那么问题可能出在数据序列化和反序列化的过程中。确保你的前端发送的是 JSON 格式的数据,而后端也期望接收到 JSON 格式的数据。

    为了更具体地分析问题,你需要查看网络面板(开发者工具 -> Network 部分)中发送的请求,确认数据是否已正确附带在请求体中。同时,你也应该检查后端日志,看是否有关于请求处理的更多细节。如果问题仍然存在,请提供更详细的后端代码和错误日志,以便更好地协助你解决问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月22日