Why isn't express-js setting the Content-Type header?
66,116
Solution 1
res.type('json')
works too now and as others have said, you can simply use
res.json({your: 'object'})
Solution 2
Try this code:
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);
(I'm assuming you are using the latest release of express, 2.0.0)
UPDATE: I just did a quick test using Firefox 3.6.x and Live HTTP Headers. This is the addons output:
HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/cache-manifest
Connection: keep-alive
Transfer-Encoding: chunked
Make sure you clear your cache before trying.
Solution 3
instead of res.send()
use res.json()
which automatically sets the content-type to application/json
Author by
codeimplementer
CTO at Media Pop, hire us for DevOps and product development
Updated on July 16, 2022Comments
-
codeimplementer almost 2 years
I have the following:
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);
The network tab in Chrome says it's
text/plain
. Why isn't it setting the header?The code above works, my problems were caused by a linking to an old version of express-js