Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Клиент-сервер Ajax vs Node. (https://javascript.ru/forum/node-js-io-js/70724-klient-server-ajax-vs-node.html)

javascript_developer 28.09.2017 12:32

Клиент-сервер 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);
};

Audaxviator 28.09.2017 15:11

Проблема-то в чём?

Маэстро 27.07.2018 15:34

Цитата:

Сообщение от Audaxviator (Сообщение 465845)
Проблема-то в чём?

Наверное в этой фразе: "приём ответа на запрос происходит раньше, чем отправка данных на сервер". Это нужно очень постараться, чтобы такое сделать. Я бы не смог ;)


Часовой пояс GMT +3, время: 22:18.