news 2026/8/7 23:31:55

若依自定义后端接口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/8/7 21:24:58

JVM 安全与沙箱深度解析

文章目录JVM 安全与沙箱深度解析字节码校验、ClassLoader隔离、攻击防护全面指南&#x1f4cb; 目录&#x1f6e1;️ 一、JVM安全模型架构解析&#x1f4a1; JVM安全架构层次&#x1f3af; JVM安全管理器实现&#x1f50d; 二、字节码校验机制深度剖析&#x1f4a1; 字节码验证…

作者头像 李华
网站建设 2026/8/7 21:30:21

t-SNE快速降维算法详解与实现

t-SNE&#xff08;t-distributed Stochastic Neighbor Embedding&#xff09;是一种非常有效的非线性降维技术&#xff0c;特别适用于高维数据的可视化。 t-SNE算法核心原理 算法概述 t-SNE通过保留数据点之间的相似性将高维数据映射到低维空间&#xff08;通常是2D或3D&#x…

作者头像 李华
网站建设 2026/8/7 11:34:15

Python编程入门从零开始掌握基础语法一

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 持续学习&#xff0c;不断…

作者头像 李华
网站建设 2026/8/7 21:29:18

20、BusyBox:嵌入式系统的强大工具

BusyBox:嵌入式系统的强大工具 1. BusyBox 操作基础 BusyBox 是一个强大的工具,它将众多常见的 Unix 工具集成为一个多调用二进制文件。当构建 BusyBox 时,会得到一个名为 busybox 的二进制文件。它既可以直接通过二进制文件名调用,不过更常见的是通过符号链接来启动。…

作者头像 李华
网站建设 2026/8/7 23:39:51

python 生成psd文件

gen_psdfrom PIL import Imagefrom psd_tools import PSDImage from psd_tools.api.layers import PixelLayerdef image_to_psd(image_obj: Image, save_path):# 确保图像模式为 RGBAif image_obj.mode ! "RGBA":image_obj image_obj.convert("RGBA")# 将…

作者头像 李华
网站建设 2026/8/7 23:02:12

25、Linux内核调试全攻略:挑战与解决方案

Linux内核调试全攻略:挑战与解决方案 在操作系统开发与维护领域,内核调试是一项既关键又复杂的任务。现代操作系统,尤其是Linux内核,其高度的复杂性和性能优化给调试工作带来了诸多挑战。本文将深入探讨Linux内核调试过程中遇到的挑战,并详细介绍几种有效的调试方法和工具…

作者头像 李华