网站开发遇到的一个坑点

我在网站写了这样一个功能:

前端页面有三个文本框和一个提交按钮,点击后将信息发送给后端并保存到数据库。

在开发阶段,我的前端代码是这样写的:
fetch('http://localhost:3000/api/submit', ...)

意思是将信息发送到本地3000端口,在开发阶段,这里没问题。

因为就是在本地开发的。

然而,项目上线后,这个提交功能却直接失效了。经过排查才恍然大悟:前端代码是下载到用户的浏览器中执行的。 如果在代码里写死 localhost,用户的浏览器就会去请求他们自己电脑上的 3000 端口,而不是我的线上服务器。

现在问题已经解决

写成这样就行了:

fetch('/api/submit', ...) 这样浏览器会自动将当前网页的线上域名拼接到请求前面。

虽然问题很简单,但是暴露出一个很严重的问题,如果项目发生错误,我根本没有能力去调试,甚至不知道问题会在什么地方。

好在现在还没有去上班。

相关推荐
+VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·课程设计
Nicander7 小时前
我给 Excalidraw 做了一个本地工作区:DrawSpace
前端·开源
linux_cfan9 小时前
17 · 引擎适配器全景:HLS/DASH/Vimeo/Mux/Cast
前端·javascript·音视频
计算机魔术师9 小时前
烧掉2780亿美元还不够?OpenAI的资本豪赌让人头皮发麻
前端
IT_陈寒10 小时前
Java线程池用错参数,我的服务居然悄悄崩溃了
前端·人工智能·后端
卡布鲁10 小时前
React useMemo 与 useCallback 完全指南:原理、场景与避坑
前端·react.js
碳基修炼11 小时前
排查记:本地 devServer 是 http,浏览器却把 302 重定向升级成了 https
前端·http
步行cgn11 小时前
Spring p 命名空间注入详解
java·前端·spring
何何____11 小时前
Vue 生命周期详解
前端·javascript
江米小枣tonylua11 小时前
TypeScript 全面の拥抱 !Prisma 8 + Electron 升级实战
前端