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

Express接口响应状态200但未返回res.send发送的数据是什么原因?

问题根源

你的问题和CORS完全无关,CORS是仅在浏览器侧生效的跨域安全限制,两个Node.js服务之间的HTTP请求不会触发CORS校验,因此你的CORS配置和当前问题没有关联。

问题出在node-fetch库的调用方式错误:fetch方法返回的是原始HTTP响应对象,仅包含状态码、响应头等元数据,服务端返回的响应体需要你主动调用对应方法解析后才能获取。

解决方法

根据服务端返回的内容类型调用对应的响应体解析方法,你当前返回的是纯文本,所以需要调用.text()方法(如果返回的是JSON格式则调用.json()方法),该方法是异步的,需要链式处理或用async/await语法调用。

修改后的请求端示例代码

import fetch from "node-fetch";
const url = "http://localhost:4000/test";
import express from "express";
const app = express();

fetch(url)
.then(response => {
    // 解析响应体为纯文本
    return response.text();
})
.then(result => {
    // 此处打印的result就是服务端返回的hello
    console.log(result);
})
.catch(err => {
    console.log(err);
})

app.listen(6000);

附加说明

curl请求能直接看到返回内容,是因为curl默认会自动读取并打印响应体内容,相当于自动完成了解析响应体的步骤,和你代码中的逻辑差异就在这里。


内容的提问来源于stack exchange,提问作者joe sharkey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:45:04