node.js, express.js - res.render не работает в сафари, показывает исходный текст в формате HTML как обычный текст - PullRequest
0 голосов
/ 14 февраля 2012

Я пытаюсь использовать res.render ('mytemplate', data), отлично работает во всех браузерах, кроме Safari (включая iOS), Safari не отображает и показывает html в виде обычного текста, а также некоторую информацию заголовка:

HTTP/1.1 success unknown
X-Powered-By: Express
content-type: text/html
Content-Length: 4489
Set-Cookie: connect.sid=pSY62z68tPe4TnQBLuhBPaVZ.Hd7o0jSkf%2F4AztPcwxhwoWgeqbIggMBrRfRHV3L7G0g; path=/; expires=Tue, 14 Feb 2012 05:27:49 GMT; httpOnly
Connection: keep-alive

<!doctype html>
<!--[if lt IE 7]>
<html class="no-js ie6 oldie" lang="en"><![endif]-->

    ...

</html>

Вот как я выполняю рендеринг:

res.setHeader('content-type', 'text/html');
res.render('myTemplate', data);

Есть идеи?

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

решил:

res.render(myTemplate, data,
    function(err, rendered) {
        // console.log(rendered);
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end(rendered);
     });

спасибо за прослушивание ...

0 голосов
/ 14 февраля 2012

Это всего лишь мысль, но, судя по тому, что Safari жалуется, может ли быть так, что заголовок типа контента имеет только нижний регистр, а не правильный Content-Type?Попробуйте это ...

Редактировать: я вижу по вашему другому ответу, что проблема была в 200 OK ...

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