Показать сообщение отдельно
  #1 (permalink)  
Старый 09.06.2018, 09:55
Интересующийся
Отправить личное сообщение для Герасим Посмотреть профиль Найти все сообщения от Герасим
 
Регистрация: 22.09.2017
Сообщений: 24

js из html не получает ответ от сервера node.js
Здравствуйте!
возможно это есть в FAQ.

Cоздаю сервер на Node.JS на базе express.
Стандартный бэк-енд:
var express = require('express');
var app = express();
app.listen(3000);
app.get('/', getExample);
...
function getExample (req, response) {
    response.send("<h1>Главная страница</h1>");
}

Обращаюсь из браузера (Chrome)
и так http://127.0.0.1:3000/
и так http://localhost:3000/

В браузере всё отлично! Браузер получает и показывает строку "Главная страница"... казалось бы цель достигнута, но..

Ок. Приступаю к front-end. Создаю index.html и в нём скрипт, который должен обратиться к серверу и получить строку "<h1>Главная страница</h1>" и показать её в DIV (html я описывать не буду, обратимся сразу к "сердцу" скрипта)
var req = new XMLHttpRequest();
    req.open("GET", "http://127.0.0.1:3000/", true); 
    req.send();
    req.onreadystatechange = function() { 
        if (req.readyState != 4) return;//ещё не все данные подтянулись
        if (req.status != 200)   return;//ошибка
           console.log(req.responseText);
    }

По отладчику в Node.JS, и вижу что запрос доходит до сервера и сервер отвечает сообщением "Главная страница".
Но в скрипте:
req.status = 0
до console.log(req.responseText) скрипт не доходит.
"http://127.0.0.1:3000/" можно менять на "http://localhost:3000/" поведение одинаковое.

Помогите, пожалуйста разобраться. Кто и как решил этот вопрос? Мне надо получить ответ от сервера через JS на странице.
Ответить с цитированием