Показать сообщение отдельно
  #1 (permalink)  
Старый 28.09.2017, 12:32
Новичок на форуме
Отправить личное сообщение для javascript_developer Посмотреть профиль Найти все сообщения от javascript_developer
 
Регистрация: 28.09.2017
Сообщений: 1

Клиент-сервер Ajax vs Node.
Как организовать обмен xml данными:
Клиент отправляет отправляет запросы с помощью XMLHttpRequest.
Сервер - Node.js.
Если исходить из учебника, то получается, что приём ответа на запрос происходит раньше, чем отправка данных на сервер.
Если обработку ответа на запрос писать после xhr.send(body), то до её выполнения дело просто не доходит.
Клиент: http://localhost:9000
Сервер: http://127.0.0.1:8080
Код клиента:
elem.onclick = function() {
console.log("Button pressed");
let xhr = new XMLHttpRequest();
xhr.open('POST', 'http://127.0.0.1:8080', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
let body ="<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n" +
"<digiseller.request>\n" +
" <seller>\n" +
" <id>505197</id>\n" +
" </seller>\n" +
" <category>\n" +
" <id></id>\n" +
" </category>\n" +
" <lang></lang>\n" +
"</digiseller.request>";

xhr.onreadystatechange = function() { // (3)
if (xhr.readyState != 4) return;

elem.innerHTML = 'Ready!';

if (xhr.status != 200) {
alert(xhr.status + ': ' + xhr.statusText);
} else {
alert(xhr.responseText);
}

};
//location.href = 'http://localhost:9000/untitled/client1.html';
xhr.send(body);
// alert("response "+ xhr.responseText);
};
Ответить с цитированием