Vue前端提交学生-家属关联数据时遇500错误,请求排查
问题排查与修复方案
核心问题分析
后端报错request.data['asignacion']键不存在,本质是前端提交的数据结构与后端期望不匹配,同时存在方法绑定错误导致提交逻辑未触发的问题。
1. 请求数据结构不匹配后端要求
后端代码request.data['asignacion']['registra']明确要求请求体是嵌套结构:外层必须包含asignacion键,内部才是estudiante、familiar、registra字段。但当前前端直接传递了this.asignacion(仅内部三个字段的平级对象),缺少外层包裹。
修复代码:修改axios请求的提交数据,将this.asignacion包裹在asignacion键下:
axios.post( "http://127.0.0.1:8000/estudianteFamiliar/", { asignacion: this.asignacion }, // 新增外层asignacion键 {headers: {'Authorization': `Bearer ${token}`} } )
2. 表单提交事件绑定错误
表单v-on:submit.prevent="processEstudianteFamiliar"绑定的方法名不存在,methods中实际定义的提交方法是processAsignarFamiliar,导致点击提交按钮时无法触发正确的提交逻辑。
修复代码:修正表单的submit事件绑定:
<form v-on:submit.prevent="processAsignarFamiliar">
3. created钩子调用未定义方法
组件created钩子中调用了this.processEstudianteFamiliar(),但该方法并未定义,会在组件初始化时抛出错误,干扰后续功能执行。
修复代码:删除该错误调用:
created: async function () { // 移除 this.processEstudianteFamiliar(); 这一行 }
修改完成后,前端提交的请求体结构将与Postman测试时一致,后端即可正常获取request.data['asignacion']数据,500错误将被解决。
内容的提问来源于stack exchange,提问作者user0002
相关产品推荐
相关产品推荐

