You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Angular的旧Web应用登录功能404错误求助

排查Angular旧应用登录POST请求404问题

核心问题确认

从Apache日志可明确:前端发起的POST /api/user/sign-in请求未匹配到服务端对应路由,返回404。结合技术栈(Angular + Node服务用forever托管),从以下维度逐步排查:

1. 验证Node后端服务的可用性与路由配置

  • 执行 forever list,确认目标应用处于running状态,记录服务监听的端口(比如默认3000)
  • 绕过Apache直接测试后端接口:
    curl -X POST http://localhost:[端口号]/api/user/sign-in -H "Content-Type: application/json" -d '{"username":"test","password":"test"}'
    
    • 若此请求也返回404:说明后端未配置/api/user/sign-in路由,检查后端coffee-script代码中的路由定义(比如Express框架的app.post('/api/user/sign-in', ...)),确认路径拼写、HTTP方法是否匹配
    • 若此请求正常响应:问题出在Apache的反向代理配置

2. 检查Apache反向代理规则

前端页面部署在Apache下,/api开头的请求需要转发到Node服务,需确认Apache配置文件(比如/etc/apache2/sites-available/000-default.conf)中存在以下规则:

ProxyPass /api http://localhost:[端口号]/api
ProxyPassReverse /api http://localhost:[端口号]/api
  • 配置完成后执行 sudo systemctl restart apache2 重启服务
  • 查看Apache错误日志/var/log/apache2/error.log,排查是否有代理转发失败的报错(比如端口不通、权限问题)

3. 核对Angular前端请求配置

针对旧版Angular(如AngularJS 1.x),检查前端coffee-script代码:

  • 确认登录请求的URL路径是否正确,是否存在拼写错误(比如把sign-in写成signin)
  • 若开启了HTML5模式,需确保Apache配置了路由重写规则(避免前端路由被Apache拦截),同时不影响API请求:
RewriteEngine On
# 排除API路径,优先转发到后端
RewriteCond %{REQUEST_URI} !^/api
# 静态资源不存在时重写到index.html,处理Angular前端路由
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [L]

4. 排查gulp构建的静态资源配置

如果前端通过gulp打包构建,检查gulp配置文件:

  • 确认构建过程中是否正确注入了API base URL,是否存在硬编码错误(比如把API路径写成了绝对路径而非相对路径)

内容的提问来源于stack exchange,提问作者Kevin wang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:45:32