Nodejs如何为每个请求设置内容类型标头

新手上路,请多包涵

我想知道如何为每个传入的 nodejs express 请求设置标题 "Content-Type": "application/json"

我尝试了这两行,但如果我自己不添加标题,我的调用仍然失败:

 app.use(function(req, res, next) {
    req.header("Content-Type", "application/json");
    res.header("Content-Type", "application/json");
    next();
});

我所有的请求都是 json,所以我不希望前端(Anguler)每次都向我发送这个标头,如果我可以从服务器端自己设置它的话。

原文由 Freddy Bonda 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 842
2 个回答

响应对象必须使用 .setHeader 而不是 .header

 app.use(function(req, res, next) {
    res.setHeader("Content-Type", "application/json");
    next();
});

博士。

原文由 Alejandro 发布,翻译遵循 CC BY-SA 4.0 许可协议

要更新请求标头,请在 bodyparser 之前添加以下自定义中间件

app.use(function (req, res, next) {
  req.headers['content-type'] = 'application/json';
  next();
});

如果仍然无法正常工作,请检查您的客户发送的“内容类型”的大小写。将“内容类型”放在相同的大小写中

原文由 Yasantha Hennayake 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题