jeruthadam, В res.setHeaders передаётся функция, не один заголовок. Но это не важно.
Вы когда пишете ответ res.json(file) они все сами поставятся. Он же для того и Express - для удобствов.
Abcdefgk, понял. оказывается когда статус 304 этот заголовок не проставляется. Меня это ввело в заблуждение.
Но моя проблема осталась. Я это делал из-за того что Accept не совпадает. Как выставить Accept? Учитывая что я просто открываю урл в браузере, это невозможно? Значит не обращать внимание на
Resource interpreted as Document but transferred with MIME type application/json:
jeruthadam, Думаю, что ему это и не надо. Если поставить дополнение в браузер (когда-то я его ставил зачем-то), то будет правильно интерпретировать и красиво отрисовывать.
А так-то, JSON - это обычная длинная строка. Вот, больше просто ничего - строка. Его всё равно после получения (например, в качестве ответа на AJAX) парсить надо, т.е. делать из него объект.