news 2026/4/18 7:54:04

若依自定义后端接口404踩坑记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
若依自定义后端接口404踩坑记录

博主在后端自定义了接口:

@PostMapping("/upload") public AjaxResult upload(@RequestPart("file") MultipartFile file, @RequestParam("studentId") String studentId, @RequestParam("thesisTitle") String thesisTitle, @RequestParam("thesisKeywords") String thesisKeywords) { try { TbThesis thesis = new TbThesis(); thesis.setThesisTitle(thesisTitle); thesis.setThesisKeywords(thesisKeywords); thesis.setStudentId(studentId); String url = tbThesisService.uploadThesis(file, thesis); Map<String, String> data = new java.util.HashMap<>(); data.put("url", url); return AjaxResult.success("上传成功", data); } catch (Exception e) { return AjaxResult.error(e.getMessage()); } }

但是前端调用ajax请求却报错404,经过仔细排查,发现是因为在 RuoYi-Vue 的前端工程里,“裸” ajax(axios)404、跨域、认证失败、统一错误处理全都没有了。不经过vite转发不会到后端8080端口。

应当在api/system目录下注册js代码

import request from '@/utils/request' export function uploadThesis(data) { return request({ url: '/system/thesis/upload', method: 'post', data, headers: { 'Content-Type': 'multipart/form-data' } }) }

然后,前端页面直接调用封装方法:

const fd = new FormData() fd.append('file', file.value) fd.append('thesisTitle', form.thesisTitle) fd.append('thesisKeywords', form.thesisKeywords) fd.append('studentId', form.studentId) loading.value = true try { const { msg } = await uploadThesis(fd) // 2. 直接调用封装方法 ElMessage.success(msg || '上传成功') // 成功后重置 uploadRef.value.clearFiles() Object.assign(form, { thesisTitle: '', thesisKeywords: '', studentId: '' }) } catch (e) { ElMessage.error(e.msg || '上传失败') } finally { loading.value = false } }



版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:17:59

DBdoctor SQL审核,首家信通院满分通过!

近日&#xff0c;数据库性能诊断DBdoctor&#xff0c;已顺利通过中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;《大数据结构化查询语言(SQL)质量管理平台能力分级要求》的专项能力评估&#xff0c;荣获最高等级——“先进级”认证。尤为重要的是&#xff…

作者头像 李华
网站建设 2026/4/18 1:52:15

以孝为根,立德成人

今天下午&#xff0c;我参加了慈明学校家长会&#xff0c;我内心感慨万千&#xff0c;特此写下感悟与大家分享。当班主任在屏幕上投射出《孝亲之法》中“孝亲是孩子做人的德根”这句话时&#xff0c;我的心被轻轻触动。恰好在今天中午&#xff0c;我刚陪公婆吃过饭&#xff0c;…

作者头像 李华
网站建设 2026/4/17 17:13:38

18、深入理解 MTD 子系统:原理、配置与分区管理

深入理解 MTD 子系统:原理、配置与分区管理 在现代嵌入式系统中,对各类存储设备的高效管理至关重要。MTD(Memory Technology Devices)子系统应运而生,旨在支持如闪存芯片等多种类存储设备。本文将深入探讨 MTD 子系统的相关知识,包括其启用、基本操作、分区管理等内容。…

作者头像 李华
网站建设 2026/4/17 16:18:46

23、Linux开发工具全解析:从代码浏览到问题排查

Linux开发工具全解析:从代码浏览到问题排查 在Linux开发过程中,有许多工具可以帮助开发者更高效地进行代码浏览、调试和性能分析。本文将介绍一些常用的工具,包括 cbrowser/cscope 、跟踪和分析工具等,帮助你更好地理解和使用这些工具。 1. cbrowser/cscope工具 cbrow…

作者头像 李华
网站建设 2026/4/18 7:41:37

29、为你的开发板定制 Linux 系统

为你的开发板定制 Linux 系统 1. 为开发板移植 Linux 在为新硬件平台移植 Linux 时,我们可以采用类似移植 U-Boot 的方法。我们选择将 Linux 移植到基于 Freescale MPC5200 32 位嵌入式 PowerPC 处理器的定制控制器板上。通过查看最新 Linux 版本的默认配置,我们找到了一个…

作者头像 李华
网站建设 2026/4/18 5:33:26

34、嵌入式开发资源与配置全解析

嵌入式开发资源与配置全解析 1. SDRAM 控制器设置概述 SDRAM 设备较为复杂,其控制器的设置至关重要。为了帮助大家应对 SDRAM 控制器设置的复杂性,下面通过一个简单示例来进行说明。在实际操作中,深入研究规格文档并理解其中的信息是必不可少的。以下是两个可参考的示例文…

作者头像 李华