У меня есть простой сервер node.js, работающий на порте 8080 с socket.io с кодом здесь Какой пример простейшего возможного примера Socket.io? .
Когда я соединяюсь с curl, он работает нормально:
curl -vk http://www.example.com:8080
* Connected to www.example.com (123.456.789.123) port 8080 (#0)
Когда я просматриваю Chrome 70.0.3538.110 на Mac до http://www.example.com:8080, он просто продолжает загружаться, пока я не получу ERR_CONNECTION_TIMED_OUT
.Я получаю тот же результат в Safari.
Однако, когда я смотрю прямо на IP, как этот http://123.456.789.123:8080, он сразу работает.
Почему это может быть?Домен указывает на правильный IP, и, видимо, он работает в curl, а также wget.Отсутствует ли какой-либо заголовок или что-то еще, что нужно браузерам?
Я нашел что-то в другом заголовке приема, это может быть связано:
Причина, по которой это не работает из вашегобраузер, вероятно, отправляет заголовок принятия что-то вроде:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,\*/\*;q=0.8
Принимая во внимание, что curl (и предположительно расширение Chrome) запрашивает:
Accept: \*/\*
Однако у index.js есть res.writeHead(200, {'Content-Type': 'text/html'});
, поэтому я думаю, что он должен отправить правильный заголовок.Также он работает в браузере с IP, так что это может быть не связано с этим.
Как я могу это исправить?