Page 306 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 306
точке (endpoint) Ajax (особой службе, которая может использоваться в других служ
бах или приложениях). Создайте файл aj axServer . j .
s
'
p
const http = require ( h tt ' ) ;
const server = http . createServer ( function ( r eq, res ) {
res . setHeader ( ' Content-Type ' , ' a pplication/j son ' ) ;
e
'
res . setHeader ( A cc s s -Control-Allow-Origin ' , ' * ' ) ;
res . e n ( J SON . stringify ( {
d
platform : process . platform,
nodeVersion : process . v ersion,
uptime : Ma h . round ( p rocess . u ptime ( ) ) ,
t
} ) ) ;
} ) ;
const port = 7 0 7 0 ;
server . listen (port, function ) {
(
console . l og ( ' A j a x server started on port $ { por } ' ) ;
t
} ) ;
Это код очень простого сервера, который сообщает свою платформу ("linux",
"darwin'; "win32" и т.д.), версию Node . j s и продолжительность непрерывной работы
сервера.
Благодаря Ajax создается брешь в системе безопасности сайта, назы
ваемая кросс-доменными запросами (Cross-Origin Resource Sharing -
c
CORS). В этом примере мы добавляем заголовок Ac e s s - C ontrol
Allow-Origin со значением *, который уведомляет клиента (браузер)
о том, что не нужно предотвращать вызов из соображений безопас-
ности. На реальном сервере обычно используется тот же самый про
токол, домен и порт (который разрешен по умолчанию), либо явно
указывается, какой протокол, домен и порт может обращаться к ко
нечной точке. Т е м не менее в демонстрационных целях, лучше всего
отключить CORS.
Для запуска этого сервера достаточно выполнить команду
$ baЬel-node ajaxServer . j s
Загрузив страницу http : / localh s t : 0 7 0 в браузер, вы увидите вывод сервера.
7
o
/
Теперь, когда имеется сервер, добавим код Ajax в наш пример НТМL-страницы (вы
можете использовать ту же страницу, что и ранее в этой главе). Для начала добавим
где-нибудь в теле документа элемент, в котором будет отображаться информация.
<div class=" serverlnfo" >
Сервер н а платформе <span data-replace="platform" > ? ? ?</span> ,
версия Node <span data-replace="nodeVersio " > ? ? ?</span> . Время
n
Ajax 309

