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

ASP.NET Core+Vue.js调用AdminController的GET接口返回404如何解决

404问题排查解决步骤

按优先级依次检查以下配置:

  • 1. 检查服务注册与路由映射配置
    确认你的项目启动文件(.NET 6+ 是Program.cs,旧版本是Startup.cs)中已经正确注册控制器服务并配置了路由映射:

    // .NET 6+ Program.cs 示例
    var builder = WebApplication.CreateBuilder(args);
    // 必须注册控制器服务,MVC项目用AddControllersWithViews
    builder.Services.AddControllersWithViews();
    var app = builder.Build();
    
    // 静态文件、HTTPS跳转、路由等中间件按顺序配置
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    
    // 必须映射控制器路由
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
    app.Run();
    

    如果是纯API项目,可替换为builder.Services.AddControllers()和app.MapControllers()。

  • 2. 检查请求路径匹配问题
    打开浏览器F12开发者工具的「网络」标签,点击按钮后查看实际发出的请求完整URL:

    • 如果项目部署在子应用/虚拟目录下(比如站点根路径是http://domain.com/myapp),开头带/的绝对路径/Admin/Items会直接请求根域名,导致路径错误,可修改为相对路径:
      axios.get('Admin/Items')
      
    • 确认请求路径没有拼写错误,路由匹配默认不区分大小写,但尽量和你配置的/Admin/Items保持一致。
  • 3. 检查中间件或权限拦截

    • 查看AdminController或GetItems方法上是否加了[Authorize]等权限验证特性,未登录的情况下请求会被拦截,部分项目配置了401跳转至登录页,如果登录页不存在也会返回404。
    • 检查有没有自定义中间件在请求进入控制器层之前就拦截并返回了404。
  • 4. 检查路由冲突问题
    确认项目中没有其他控制器或接口配置了相同的路由模板[HttpGet("Admin/Items")],重复路由会导致匹配优先级混乱,出现404。

  • 5. 检查控制器与方法配置
    确认GetItems方法是public访问修饰符,当前你的写法是正确的,如果误写为private/protected会导致路由无法匹配到Action。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:24:03