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

ASP.NET Core+Angular代理配置异常:自定义API无法转发

解决ASP.NET Core + Angular代理配置失效问题

1. 修正proxy.config.js配置

使用如下标准配置,确保请求正确转发到后端:

const PROXY_CONFIG = [
  {
    context: ['/api'],
    target: 'https://localhost:7010',
    changeOrigin: true,
    secure: false,
    logLevel: 'debug'
  }
];

module.exports = PROXY_CONFIG;
  • context: ['/api']:匹配所有以/api开头的请求,无需额外正则符号
  • changeOrigin: true:必须开启,避免后端因Origin不匹配拒绝请求
  • secure: false:本地开发时后端用自签HTTPS证书需开启此项
  • logLevel: 'debug':开启日志便于排查代理是否生效

2. 确保Angular启动时加载代理配置

修改package.json中的启动脚本,明确指定代理配置文件:

"scripts": {
  "start": "ng serve --proxy-config proxy.config.js"
}

启动项目时必须通过这个脚本启动,否则代理配置不会被加载。

3. 修正前端请求代码

请求URL使用相对路径,且保持路由大小写与后端一致:

// 正确写法
this.http.get('/api/Products/GetAllProducts').subscribe(response => {
  // 处理响应
});

避免使用带端口的绝对路径(如https://127.0.0.1:4200/Api/Products/GetAllProducts),否则请求会直接发送到Angular服务端口,而非经过代理转发。同时注意路由大小写,Kestrel默认对URL大小写敏感,确保前端请求的/api与后端路由一致。

4. 验证代理生效状态

启动Angular项目后,查看控制台日志:

  • 若看到[HPM] Proxy created: /api -> https://localhost:7010,说明代理已成功创建
  • 发送请求时若出现[HPM] Rewriting path from "/api/Products/GetAllProducts" to "/api/Products/GetAllProducts",说明请求已被代理转发

当前问题本质是代理未生效,导致前端请求直接打到Angular的4200端口,返回的是项目的index.html文件。按上述步骤逐一排查,即可解决API调用失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:22:03