Почему express-js не устанавливает заголовок Content-Type? - PullRequest
23 голосов
/ 23 марта 2011

У меня есть следующее:

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

Ответы [ 3 ]

37 голосов
/ 23 октября 2016

res.type('json') работает и сейчас, и, как говорили другие, вы можете просто использовать
res.json({your: 'object'})

19 голосов
/ 23 марта 2011

Попробуйте этот код:

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

Убедитесь, что вы очистили кеш перед попыткой.

0 голосов
/ 05 февраля 2018

вместо res.send()

использовать res.json(), который автоматически устанавливает тип содержимого на application/json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...