webentwicklung-frage-antwort-db.com.de

Warum setzt express-js den Content-Type-Header nicht?

Ich habe folgendes:

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);

Die Registerkarte "Netzwerk" in Chrome gibt an, dass es text/plain ist. Warum wird der Header nicht gesetzt?

Der obige Code funktioniert, meine Probleme wurden durch einen Link zu einer alten Version von Express-Js verursacht

21
Kit Sunde

res.type('json') funktioniert jetzt auch und wie andere gesagt haben, können Sie einfach verwenden
res.json({your: 'object'})

36
Ray Hulha

Versuchen Sie diesen 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);

(Ich gehe davon aus, dass Sie die neueste Version von Express 2.0.0 verwenden.)

UPDATE: Ich habe gerade einen kurzen Test mit Firefox 3.6.x und Live HTTP Headers durchgeführt. Dies ist die Addons-Ausgabe:

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

Stellen Sie sicher, dass Sie den Cache leeren, bevor Sie es versuchen.

19
schaermu

anstelle von res.send()

verwenden Sie res.json(), wodurch der Inhaltstyp automatisch auf application/json festgelegt wird.

0
danday74