当我发出通过返回204的GET请求时,没有设置任何内容类型。如果我发出相同的请求,而是使用PUT,则grunt-connect-proxy (或grunt-contrib-connect --我不知道)将自动将Content-type: application/json附加到响应。这是一个问题,因为1)没有任何内容,所以说内容类型是什么都是不准确的。更重要的是,2) breaks试图将空响应解析为JSON,这破坏了我的应用程序。
我已经通过浏览器测试了端点,而实际的服务器并没有将这些附加信息发回。
如何防止grunt-connect-proxy (或grunt-contrib-connect)将内容类型添加到204 No Content响应中?
发布于 2014-10-22 14:36:31
我已经解决了这个问题,但我不确定是否是黑客。我不认为其他人会这样做,因为没有其他人在互联网上抱怨过。我的解决方案是添加一个中间件来监视响应中的“header”事件,如果statusCode是204,并且内容类型被设置为从报头中删除内容类型。
var apply204 = function(req, res, next) {
res.on('header', function() {
if(res.statusCode === 204) {
if(res._headers['content-type'] !== undefined) {
delete res._headers['content-type'];
}
}
});
next();
};仍然会对发生这种情况的原因感兴趣。
https://stackoverflow.com/questions/26509007
复制相似问题