Показать сообщение отдельно
  #6 (permalink)  
Старый 28.05.2014, 13:29
Новичок на форуме
Отправить личное сообщение для Borys Semerenko Посмотреть профиль Найти все сообщения от Borys Semerenko
 
Регистрация: 28.05.2014
Сообщений: 7

Когда ты в браузере открываешь http://localhost:8080 идёт запрос на сервер.
Создается объект запроса http.IncomingMessage и объект ответа http.ServerResponse:
http.createServer(function (req, res) {
  // req - http.IncomingMessage, для того чтобы получить информацию по запросу
  // res - http.ServerResponse, для того чтобы вернуть ответ
});

В объекта http.IncomingMessage есть свойство url которое содержит в себе URL по которому ты обратился.
Если ты запросил http://localhost:8080 - URL будет '/',
если http://localhost:8080/login - '/login',
если http://localhost:8080/products/update?id=10 - '/products/update?id=10'.

Мы проверяем какой URL у запроса и в зависимости от этого по разному отвечаем. Для '/' мы просто вернем html страничку:
if ( req.url === '/' ) {
  res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
  res.end( html );
}

Во всех остальных случаях мы будем возвращать просто текст.
Когда ты делаешь AJAX запрос ты указываешь адрес куда нужно сделать запрос:
xhr.open('GET', 'proj1.js', true);

В твоем случае ты просто указал 'proj1.js' и браузер сам сформирует адрес. Он возьмет текущий адрес, что в адресной строке, в твоем случае это http://localhost:8080 и добавит proj1.js.
Так что твой код делает AJAX запрос на http://localhost:8080/proj1.js.
Сервер видит что запрос не на '/', а на '/proj1.js' и отдает текст.

Надеюсь я понятно расписал
Ответить с цитированием