近期遇到的问题汇总

发布于:2025-07-20 ⋅ 阅读:(17) ⋅ 点赞:(0)

问题1 浏览器兼容问题

首先是前端哈,我一个echart渲染好的图表,我在自己本机ok,去公司电脑上跑就报错,样式就错乱,why,好的,找到了,是因为,浏览器版本不兼容的问题,用微软的microsoftedge他就行,用谷歌就G,现在ai搜到解决兼容性问题的一个,是去前端下载一个包npm list @babel/polyfill用npm下载,看行不行。

问题2 java复杂业务问题(初级业务)

后端java的多级联查,奇了怪了,就是,我比如,建立一个仓库,仓库a底下两个区域,a,b区域吧,然后在a区域底下建立货架,a,b货架吧,然后去a货架底下建立物品1,好,现在的关系是仓库a-区域a-货架a-物品1,但是问题来了,需求就是,我删除物品的时候无所谓吗。那删除仓库呢,比如我把仓库a直接删掉,欸,难道所有数据跟着全删了吗?那万一老板要保留怎么办?有很多业务需求和场景
其实java学会了,把sql弄出来一路好好返回是这样的,主要是复杂逻辑业务,还有项目的复杂程度决定一切

记忆点1
记住前端项目每次npm的版本不合适的时候直接用nvm下载,切换哈,还得看他是用vite还是用vcli

问题3 跨域问题

跨域问题是前端开发中常见的网络请求限制,本质是浏览器的一种安全机制(称为 “同源策略”)导致的请求失败。下面详细解释:

  1. 什么是同源策略?
    “同源” 指的是两个 URL 的 协议、域名、端口 三者完全一致。例如:
    http://localhost:3000 和 http://localhost:3000/page → 同源(协议、域名、端口相同)
    http://localhost:3000 和 https://localhost:3000 → 不同源(协议不同:http vs https)
    http://localhost:3000 和 http://example.com:3000 → 不同源(域名不同)
    http://localhost:3000 和 http://localhost:5000 → 不同源(端口不同)
    浏览器的同源策略规定:非同源的网页,不能互相访问资源(如数据、Cookie、LocalStorage 等),目的是防止恶意网站窃取用户信息。
  2. 什么时候会出现跨域问题?
    当前端页面(如 http://localhost:5173)通过 AJAX/fetch/axios 等工具,向不同源的后端 API(如 http://api.example.com)发送请求时,浏览器会拦截该请求,并在控制台报错,常见错误信息类似:
    plaintext
    Access to fetch at ‘http://api.example.com/data’ from origin ‘http://localhost:5173’ has been blocked by CORS policy…
  3. 跨域的 3 种常见场景
    场景 示例(前端 → 后端) 跨域原因
    域名不同 http://a.com → http://b.com 域名不一致
    协议不同 http://a.com → https://a.com 协议(http/https)不同
    端口不同 http://a.com:8080 → http://a.com:3000 端口不一致
  4. 如何解决跨域问题?
    跨域问题的解决方案主要分为前端处理和后端处理两类,推荐优先通过后端解决(更安全):
    (1)后端解决方案(推荐)
    CORS(跨域资源共享):后端在响应头中添加允许跨域的配置。
    例如,在 Node.js(Express)中:
    javascript
    res.setHeader(‘Access-Control-Allow-Origin’, ‘http://localhost:5173’); // 允许指定前端域名
    res.setHeader(‘Access-Control-Allow-Methods’, ‘GET, POST, PUT, DELETE’); // 允许的请求方法
    res.setHeader(‘Access-Control-Allow-Headers’, ‘Content-Type’); // 允许的请求头

代理服务器:后端部署一个代理服务,前端请求先发送到代理服务器,再由代理转发到目标 API(代理与目标 API 同源,避免跨域)。
(2)前端解决方案(开发环境常用)
开发环境代理:在前端构建工具(如 Vite、Webpack)中配置代理,将 API 请求转发到目标服务器。
例如,Vite 的 vite.config.js 配置:
javascript
export default defineConfig({
server: {
proxy: {
‘/api’: { // 匹配以/api开头的请求
target: ‘http://api.example.com’, // 目标服务器地址
changeOrigin: true, // 允许跨域
rewrite: (path) => path.replace(/^/api/, ‘’) // 去掉/api前缀
}
}
}
});

之后前端请求可写为 request.get(‘/api/za/xingzuo.php?msg=xxx’),会自动转发到目标服务器。
JSONP:利用

问题4 多模块问题


比如说吧,就是你一个项目不可能一个模块撒,你有多个模块然后你疯狂的建立,根据业务吗,比如ruoyi框架,很多公司开发用的这个玩意。就很多了;然后呢?你就去每个模块都有个启动类?那不得干死自己;这是一个父目录的底下建立文件,创建启动类,里面写这些,记得端口也得配完毕 类似这些罢了,现在很多东西精简的都没有底层了,会用就行了;

问题5 配置问题

也是总结性问题,就是你使用mybatis的时候吧你肯定要去配置的吗,就像用Node还是什么开发环境,他都得去配东西,然后配环境变量,全局用这是一个吧,然后再一个是什么?你比如mybatis这个东西你就得去配的;这个就是直接在你项目的启动类里面配置就好了;
mybatis.mapper-locations=classpath:mapper/*.xml
还有很多,比如依赖的配置,还要找到对应版本,怎么说呢?真的很折磨人,一次性就找到,配好,学什么东西先规划好,不能无头学

问题6 前后端联调跑通

在这里插入图片描述

一个项目,从前端到后端吧,欸你必须是两边都掌握牢固,起码要会写接口,底层逻辑
知识准备:后端:java springboot三层架构的了解 mybatis的映射 所有写法,返回什么东西跑通,复杂业务场景实现,连环嵌套这种类型以及是复杂项目的构建。学会这些后端足以跑通了。
前端:三件套肯定要会,然后就是js的语法逻辑,以及vue框架,vue的开发现在应该都是vite比较流行,serve比较晚了,再一个是什么?选项式和组合式api,这主要是再写接后端的接口部分,不过确实很大一部分可以是ai解决。标签样式都是次要的,主要是生命周期函数以及他的模板理论,不比后端的算法难,主要在于多;请求应该就去学一下featch axios都可以

流程,自认为
1.首先先去分析业务,或者自己创立业务,比如我现在后端有一张用户表想输出给前端展示出来,好,业务明确了;
2.现在去写sql,sql里面写好查询,肯定是直接select * from 表名;设置好Id 和result type,别忘了写实体类哦
3.然后返回给mapper ,mapper拿到开始封装,现在类上标注这是mapper层,做到依赖注入,ioc管理吧,然后就是在类里面写一个方法,比如就用vo封装,那咱们肯定是用一个列表或者集合,然后把他装起来,定义好方法名字和类型啊等等,返回的东西就是xml文件里的东西;不过应该不用写返回,mapper层应该可以直接调用xml里面的内个方法。记得要用mybatis-plus就是继承一下接口,basemapper,这种;
4.现在开始返回给impl实现层,也就是service层,咱们还是先给impl的这个东西标注好注解,然后这时候注意啦,因为mapper层他也是类的嘛, 你用这个impl层的东西你想去调他的接口你必须是先用那个类创建对象的嘛,所以,你必须得先用一个usermapper的类创建一个对象,然后给她上个注解autowired给她封装起来,封装好之后呢?开始写方法,还是一样的保护类型,和方法类型,然后就是去写方法体,内容就是返回你mapper层封装好的东西,那就得是用mapper层的对象了;
5.好现在到了接口层,接口层就是,写个impl的方法就可以走了,毕竟是个接口,他是一个接口实现多个impl实现层复用的;
6.然后终于来到了控制层!!!!!!到这,一个新的接口就可以上市了;他接收一下来自接口层的封装的东西,当然,你必须也是用对象来访问他的方法;然后标识好这是控制层,用控制层的集合注解,再一个就是要用RequestMapping这个注解标注一下这个类的访问路径;
最后就是标注具体到某个接口的访问路径GetMapping,这个注释;至此,就可以postman去测试一下了;
7.如果后端没问题,表结构一般都对应的上,你的vo和表能对上没问题,sql没问题就能完全展示了;就能来到激情澎湃的前端部分;
其实前端我也写的少,不好说;
8.前端了,怎么说呢?先把Vscode打开,然后用vue熟练的把所有目录建立完毕,比如;app.vue导入个页面组件吧,头部吧,然后头部里面放句话,然后去router.js里面配置一下路由方便管理前进后退这种;再一个就是创建api,api里面就是去接受后端传来的部分,传过来了之后呢?就去api里面建立Index.js里面不管是用axios还是featch类型的请求,都去写一下接收,然后接受到了吧,要去解决跨域问题,然后再去头部组件里面使用一下这个api,调一下,其实逻辑很像;后端也能解决跨域问题,而且或许更安全,然后解决完了跨域问题就可以启动看看了,就可以看到后端的表已经成功输出了;然后就可以开始根据所学的各种知识点等等开始业务开发了,如果错误多,那就是究极的培养自己面对问题的能力了;


网站公告

今日签到

点亮在社区的每一天
去签到