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

ASP.NET Core 8+Angular 17+无法调用控制器非默认GET方法求助

ASP.NET Core 8.0 + Angular 17+:无法调用控制器第二个GET方法

问题详情

使用ASP.NET Core 8.0配合Angular 17+开发时,仅能成功调用控制器的默认GET方法,第二个GET方法调用失败,报错信息:

Http failure during parsing for http://localhost:4200/api/values/getme

直接访问后端完整路径(如https://localhost:44351/api/values/getme)时,该方法可正常返回结果。

控制器代码

[Route("api/values")]
[ApiController]
public class ValuesController : ControllerBase
{
    // GET: api/<ValuesController>
    [HttpGet]
    public ActionResult<IEnumerable<string>> Get()
    {
        return Ok(new string[] { "ActionResult<IEnumerable<string>> Get()" });
    }

    [HttpGet]
    [Route("getme")]
    public ActionResult<IEnumerable<string>> GetMe()
    {
        return Ok(new string[] { Guid.NewGuid().ToString() + " | " + Guid.NewGuid().ToString() });
    }
}

代理配置(proxy.config.json)

{
  "/api/*": {
    "target": "https://localhost:44351",
    "secure": false,
    "logLevel": "debug"
  }
}

排查与解决方案

1. 验证代理转发是否正常

查看Angular启动后的控制台日志(已开启logLevel: "debug"),确认请求/api/values/getme是否被正确转发到后端地址https://localhost:44351/api/values/getme。如果转发路径异常,需调整代理规则。

2. 优化控制器路由定义

虽然直接访问后端正常,但可以简化路由定义避免潜在歧义:将第二个方法的[HttpGet] + [Route("getme")]替换为[HttpGet("getme")],路由定义更清晰:

[HttpGet("getme")]
public ActionResult<IEnumerable<string>> GetMe()
{
    return Ok(new string[] { Guid.NewGuid().ToString() + " | " + Guid.NewGuid().ToString() });
}

3. 排查响应解析问题

错误提示为解析失败,需确认后端返回的JSON格式是否正确:

  • 打开浏览器开发者工具的Network标签,查看该请求的Response内容,检查是否存在JSON语法错误。
  • 调整Angular请求的响应类型,临时设置为text测试是否能正常接收数据:
// Angular请求示例
import { HttpClient } from '@angular/common/http';

constructor(private http: HttpClient) {}

testGetMe() {
  this.http.get('/api/values/getme', { responseType: 'text' })
    .subscribe({
      next: data => console.log(data),
      error: err => console.error(err)
    });
}

4. 检查HTTPS代理兼容性

后端使用HTTPS协议,若代理转发存在问题:

  • 确认后端服务正常运行在端口44351,无端口冲突。
  • 尝试将代理target切换为后端的HTTP端口(若后端配置了HTTP监听),测试是否能正常转发请求。

内容的提问来源于stack exchange,提问作者C.Ikongo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:05:13