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

如何为现有Node.js接口请求添加指定Headers?

适配后的路由实现

你当前的代码是Express 后端的路由处理函数,无需使用浏览器Fetch API的new Headers()构造器,直接通过Express响应对象内置的res.set()方法即可批量设置要求的响应头,完整代码如下:

const getUsers = async (req, res) => {
    try {
        const data = await ContactUser.find()
        // 在发送响应前批量配置所有要求的响应头
        res.set({
            'Accept': 'application/json',
            'Access-Control-Expose-Headers': 'Content-Range',
            'Content-Range': 'users 0-20/20'
        })
        return res.status(200).json({
            data
        })
    } catch (err) {
        return res.status(200).json({
            err: "Server error"
        })
    }
};

配置对应逻辑说明

  • 参考示例中的Accept: 'application/json'是前端Fetch的请求头语法,在Express中直接作为响应头配置即可,和你当前返回JSON的接口逻辑完全匹配
  • Access-Control-Expose-Headers: Content-Range是跨域场景的必需配置,缺少这一项的话,前端跨域请求时无法通过JS读取到自定义的Content-Range头
  • Content-Range: users 0-20/20按你指定的固定值配置即可,后续接入动态分页逻辑时,可以直接替换成根据分页参数计算出的动态范围字符串

关键注意点:Express 中所有响应头的设置必须在调用res.json()/res.send()这类发送响应的方法之前完成,否则框架会直接忽略后续的头设置操作,导致配置不生效。如果需要让错误响应也统一携带指定头配置,可以把res.set()的逻辑移到try块最外层,覆盖全量响应场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 22:06:05