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

ASP.NET Core应用中JavaScript Fetch无法获取响应体的问题求助

ASP.NET Core应用中JavaScript Fetch无法获取响应体的问题求助

我现在碰到一个棘手的问题:本地的ASP.NET Web API明明运行正常,但用JavaScript的Fetch调用或者直接在浏览器访问时,就是拿不到正确的响应体。

我已经在Swagger里测试过这个API,也调试了后端代码,确认它确实能返回正确的响应体,格式如下:

{
  "epcs": [
    "E2806995000050084E48825E",
    "E2806995000040084E44E8A6",
    "E280699500004004CAA1F8E2",
    "E2806995000040084E48BC91",
    "E2806995000050084E418574",
    "E280699500004004CAA97D4E",
    "E2806995000050084E4459BA",
    ...
  ]
}

下面是直接返回EPCs的后端方法:

[HttpGet("stopAndGetData")]
public async Task<IActionResult> Stop()
{
    var epcs = await _reader.StopReading();

    if (epcs == null || epcs.Count == 0)
    {
        return Ok(new { message = "Nenhum EPC capturado." });
    }

    return Ok(new { epcs });
}

但问题来了,当我用JS的Fetch调用,或者直接在浏览器地址栏访问的时候,得到的响应完全不对(看截图)。负责发起请求的JS函数是这样的:

async function stopRead(e) {
    e.preventDefault();
    const stopButton = e.target;
    stopButton.disabled = true;
    document.querySelector("#startRead").disabled = false;

    try {
        const response = await fetch(`${window.location.origin}/api/read-rfid/stopAndGetData`);

        if (!response.ok) throw new Error(`Erro: ${response.statusText}`);

        const data = await response.json();
        console.log("EPCs recebidos:", data.epcs || data.message);
        console.log(data);
    } catch (error) {
        console.error("Erro ao parar leitura:", error);
        stopButton.disabled = false;
    }
}

哦对了,JS代码实际调用的是这个中间接口,它会转发请求到真正的RFID API:

[HttpGet("stopAndGetData")]
public async Task<IActionResult> Stop()
{
    try
    {
        using (HttpClient client = new HttpClient())
        {
            var response = await client.GetAsync((string)HttpContext.Session.GetString("ServiceLocalUrl") + "/api/rfid/stopAndGetData");
            return Ok(response);
        }
    }
    catch (Exception ex)
    {
        return BadRequest(ex);
    }
}

(截图显示异常的响应内容)

我已经尝试过这些方法,但都没解决问题:

  • 用Axios替代Fetch发起请求
  • 修改API的Program.cs文件配置跨域规则

备注:内容来源于stack exchange,提问作者José Luiz Ihlenfeldt Maia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 09:43:07