为什么express-js不设置Content-Type标头?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么express-js不设置Content-Type标头?相关的知识,希望对你有一定的参考价值。

我有以下内容:

var express = require('express'),
    app = express.createServer();

app.get("/offline.manifest", function(req, res){
  res.contentType("text/cache-manifest");
  res.end("CACHE MANIFEST");
});

app.listen(8561);

Chrome中的网络标签显示它是text/plain。为什么不设置标题?

上面的代码有效,我的问题是由链接到旧版本的express-js引起的

答案

res.type('json')现在也工作,正如其他人所说,你可以简单地使用 res.json({your: 'object'})

另一答案

试试这段代码:

var express = require('express'),
    app = express.createServer();

app.get("/offline.manifest", function(req, res){
  res.header("Content-Type", "text/cache-manifest");
  res.end("CACHE MANIFEST");
});

app.listen(8561);

(我假设您使用的是最新版本的Express,2.0.0)

更新:我刚刚使用Firefox 3.6.x和Live HTTP Headers进行了快速测试。这是插件输出:

 HTTP/1.1 200 OK
 X-Powered-By: Express
 Content-Type: text/cache-manifest
 Connection: keep-alive
 Transfer-Encoding: chunked

确保在尝试之前清除缓存。

另一答案

而不是res.send()

使用res.json()自动将内容类型设置为application/json

以上是关于为什么express-js不设置Content-Type标头?的主要内容,如果未能解决你的问题,请参考以下文章

Express-js 无法获取我的静态文件,为啥?

Unity WWW类Http Content-T 文本类型讲解

Unity WWW类Http Content-T 文本类型讲解

如何使用 angular2 设置 express-jwt 而不阻塞 node_modules?

CSS二级菜单ul框内的颜色怎么设置

wx.request()方法