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

React + ASP.NET Core模板:客户端无法访问新增控制器端点

问题解决:React无法调用ASP.NET Core新增的Test端点

核心问题

你的Test控制器返回的是纯字符串,但前端代码中用response.json()尝试解析响应——纯字符串不是有效的JSON格式,导致解析失败,进而无法更新testMessage状态。而WeatherForecast控制器返回的是对象数组,能被json()正确解析,所以可以正常工作。

解决方案(二选一即可)

方案1:修改前端解析逻辑

将populateTestData中的response.json()替换为response.text(),适配纯文本响应:

async function populateTestData() {
    const response = await fetch('test');
    if (!response.ok) {
        throw new Error('请求失败'); // 可选:增加错误处理
    }
    const data = await response.text();
    setTestMessage(data);
}

方案2:修改后端返回格式

让Test控制器返回标准JSON格式的响应,保持和WeatherForecast一致的风格:

[HttpGet(Name = "GetTest")]
public IActionResult Get()
{
    // 返回字符串包装的JSON
    return Ok("This is the test message you should receive from the Test endpoint.");
    // 或者返回结构化对象(更推荐)
    // return Ok(new { Message = "This is the test message you should receive from the Test endpoint." });
}

额外排查确认

  1. 路由验证:Test控制器的[Route("[controller]")]配置正确,端点路径为/test,和前端fetch('test')的路径匹配(同域下相对路径有效)。
  2. 控制器注册:Program.cs中builder.Services.AddControllers()默认会扫描当前程序集下所有继承ControllerBase的控制器,你的TestController在ReactDotNetPractice.Server.Controllers命名空间下,无需额外配置。
  3. 请求状态检查:可以在浏览器开发者工具的Network标签中查看test请求的状态码和响应内容,确认请求是否到达后端、响应格式是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:57:19