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

Angular v16.1.0代理未重写HTTPS请求,报404及WebPack日志求助

解决Angular代理不重写JSON请求的问题

1. 调整代理配置文件

问题根源是Angular代理默认的headersAcceptFilter会过滤掉Accept头包含application/json的请求,导致不转发。修改proxy.conf.js,添加headersAcceptFilter: ''禁用这个过滤规则:

const PROXY_CONFIG = [
  {
    context: ['/api'],
    target: 'https://localhost:44303',
    secure: false, // 后端用自签HTTPS证书时需设为false
    changeOrigin: true,
    logLevel: 'verbose',
    headersAcceptFilter: '' // 关键:取消Accept头过滤,允许JSON请求被代理
  }
];

module.exports = PROXY_CONFIG;

2. 确认代理配置已加载

检查angular.json的serve配置,确保已指定代理文件:

"serve": {
  "builder": "@angular-devkit/build-angular:dev-server",
  "options": {
    "browserTarget": "你的项目名:build",
    "proxyConfig": "proxy.conf.js"
  }
}

如果用命令行启动,确保加上参数:ng serve --proxy-config proxy.conf.js

3. 修正HttpClient请求路径

组件里的请求必须用相对路径,不能写完整域名,否则会绕过代理:

// 正确写法
this.http.get('/api/account/user').subscribe(res => {
  // 处理响应
});

// 错误写法(直接访问前端端口,不会走代理)
// this.http.get('https://localhost:44498/api/account/user').subscribe(...)

4. 验证代理生效

重启Angular开发服务器,查看控制台日志,如果出现Rewriting GET /api/account/user to https://localhost:44303/api/account/user的提示,说明代理已正常工作,此时浏览器请求会被正确转发到后端端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:04:57