Защо 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


person Kit Sunde    schedule 23.03.2011    source източник


Отговори (3)


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

person Ray Hulha    schedule 23.10.2016
comment
това е страхотно, тъй като все още ви позволява да използвате res.send(obj) за изпращане на обекти като JSON. По-добър от res.end(JSON.stringify(obj)) - person Joseph Nields; 17.03.2017
comment
можете също да го вържете, res.type('json').send({your: 'object'}); или както посочва @danday74 по-долу, просто res.json({your: 'object'}); - person Steve Kehlet; 27.02.2018

Опитайте този код:

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

Уверете се, че сте изчистили кеша си, преди да опитате.

person schaermu    schedule 23.03.2011
comment
току-що го тествах в моята локална настройка за разработка, работи перфектно (вижте актуализацията) - person schaermu; 23.03.2011
comment
Аха! По някаква причина се свързваше със стара версия на node. Благодаря ти! :) - person Kit Sunde; 23.03.2011

вместо res.send()

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

person danday74    schedule 05.02.2018
comment
това далеч не отговаря на въпроса - person sjmeverett; 15.05.2018
comment
Не е свързано с въпроса. - person Ed Bishop; 30.09.2018
comment
В моя случай това беше точно въпросът: Why isn't express-js setting the Content-Type header? в моя случай към json. Научих за res.json() - person ps0604; 17.07.2020