为何我的GET请求无法正常工作?涉及CORS、Express与FetchAPI
问题排查与解决步骤
1. 首先修复服务端代码的致命语法错误
你当前服务端代码的express.json中间件使用错误,该方法需要执行调用才会返回合法中间件,缺少括号会导致服务启动直接报错,无法正常监听端口:
// 错误写法 app.use(express.json); // 修正为 app.use(express.json());
2. 确认服务端正常启动
执行启动脚本(node 你的服务文件名.js)后,检查终端是否正常打印日志Server running on port 3000,如果有报错优先解决报错:
- 若提示找不到
cors/express模块,先执行npm install express cors安装依赖 - 若提示端口占用,可更换端口号或者结束占用3000端口的进程:
- Windows系统执行命令:
netstat -ano | findstr 3000找到对应PID后结束进程 - Mac/Linux系统执行命令:
lsof -i:3000找到对应PID后执行kill -9 进程ID结束进程
- Windows系统执行命令:
3. 服务正常启动仍报错的排查方案
- 如果你的Node服务运行在WSL、Docker容器或者其他虚拟机环境中,
localhost指向的是宿主机器地址而非服务运行的环境地址,修改服务监听规则允许所有IP访问:
同时客户端请求地址替换为服务运行环境的实际IP,而非app.listen(port, '0.0.0.0', () => { console.log(`Server running on port ${port}`); });localhost - 检查本地防火墙设置,确认3000端口的入站/出站规则没有被拦截
内容的提问来源于stack exchange,提问作者Xjarlie
相关产品推荐
相关产品推荐

