news 2026/7/7 17:12:33

若依自定义后端接口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/7/7 19:30:38

EPLAN电气设计:选对版本轻松入门

EPLAN电气设计&#xff1a;选对版本轻松入门我们绘制原理图&#xff0c;怎么选择版本&#xff0c;从2.9 SP1或者SP2这两个版本开始最合适&#xff0c;用的人多&#xff0c;教程、资料也全。要是实在找不到&#xff0c;用2023版也行&#xff0c;就是稍微新了点。那下面我们就来具…

作者头像 李华
网站建设 2026/7/7 13:50:35

16、常见Linux文件系统介绍与使用指南

常见Linux文件系统介绍与使用指南 1. ext3文件系统 ext3文件系统如今已成为功能强大、高性能且稳定的日志文件系统,是许多流行桌面Linux发行版(如Red Hat和Fedora Core系列)的默认文件系统。 它本质上是ext2文件系统的扩展,添加了日志功能。日志记录技术会将文件系统的每…

作者头像 李华
网站建设 2026/7/7 2:55:59

Python 自动化办公实战:Excel 批量处理 + 邮件自动发送(附完整源码)

在日常办公中&#xff0c;重复的 Excel 数据整理、报表生成与邮件分发工作占据大量时间。本文将手把手教你用 Python 实现 “Excel 数据批量处理 自动化邮件发送” 全流程&#xff0c;涵盖数据读取、清洗、格式美化、报表生成及邮件带附件发送&#xff0c;支持自定义模板与批量…

作者头像 李华
网站建设 2026/7/7 1:35:15

Linux进程优先级与切换机制详解

在Linux系统中&#xff0c;进程优先级和进程切换是进程管理的核心概念&#xff0c;直接影响系统的调度行为和性能。以下是详细说明&#xff1a;一、进程优先级Linux通过优先级决定进程获取CPU资源的顺序&#xff0c;分为两种类型&#xff1a;1. 静态优先级&#xff08;Nice值&a…

作者头像 李华
网站建设 2026/7/7 10:26:16

13、Yocto项目软件层操作指南

Yocto项目软件层操作指南 1. BitBake常见语法概述 BitBake在解析配置时,会按照特定顺序评估不同的赋值语法,以下是一些常见赋值及其评估顺序: | 赋值符号 | 评估方式 | | ---- | ---- | | = | 使用时展开 | | := | 解析时展开 | | ?= | 解析时若为空则立即展开 | |…

作者头像 李华
网站建设 2026/7/7 7:42:25

数字孪生项目外包开发公司

寻找一家优秀的数字孪生&#xff08;Digital Twin&#xff09;项目外包开发公司&#xff0c;需要关注其在跨学科集成能力、数据处理能力和行业专业知识方面的表现。数字孪生项目往往是高度定制化的复杂工程&#xff0c;以下是您应关注的五个关键评估维度&#xff1a;一、 核心技…

作者头像 李华