Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   вопрос по JS (передача/прием данных по IP) (https://javascript.ru/forum/css-html/83333-vopros-po-js-peredacha-priem-dannykh-po-ip.html)

s868 18.11.2021 13:24

вопрос по JS (передача/прием данных по IP)
 
доброго времени суток.
нтмл-страница имеет (в своем составе JavaScript-код) кнопки, при нажатии которых вызывается однотипная процедура

$('#save0').on('click', function()
{
log4('OFF');
$.ajax(
{
url: 'http://192.168.0.55:80/aaa',
data: JSON.stringify({state: 1}),
type: 'POST',
})
});
т.е. банальный коннект по IP и отправка пакета данных в ASCII:

POST /bbb HTTP/1.1 Host: 192.168.0.55 Connection: keep-alive Content-Length: 11 Accept: / User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Content-Type: application/x-www-form-urlencoded Origin: null Accept-Encoding: gzip, deflate Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 {"state":1}

все прекрасно отправляется, устройство с IP 192.168.0.55 принимает этот пакет по езернету, обрабатывает и отвечает своим пакетом. Вопрос - как в программе оформить прием и обработку ответа? куда попадает принятый пакет - в какой массив, в какую структуру, какая процедура вызывается?

ksa 18.11.2021 13:48

Цитата:

Сообщение от s868
куда попадает принятый пакет - в какой массив, в какую структуру, какая процедура вызывается?

Почитай документацию по $.ajax()
https://basicweb.ru/jquery/jquery_method_ajax.php

s868 18.11.2021 17:05

спасибо, это то что искал. правильно ли я понял, что
нужно в $.ajax указать коллбек-функцию в параметре success, при поступлении данных от сервера эта функция и будет вызвана

рони 18.11.2021 17:19

s868,
:yes:

s868 18.11.2021 17:42

я только начинаю в js и возникают трудности с элементарными вещами.
подскажите пожалуйста как определить поле success и коллбэк- процедуру так, чтобы после приема от сервера полученный пакет данных выдавался в alert(" ")

$.ajax({
url: 'http://192.168.0.55:80/aaa',
data: JSON.stringify({state: 1}),
type: 'POST',
success: {ЧТО ТУТ ПИСАТЬ?},

})

voraa 18.11.2021 17:55

success: function (resp) {alert(resp)},

Читайте документацию. Там и примеры есть
https://api.jquery.com/jquery.ajax/

рони 18.11.2021 17:57

s868,
success: function(data) {
   alert(data);
},


Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

s868 19.11.2021 12:53

программой hercules (сервер) открыл порт 80, своей программой на JS по нажатию кнопки делает коннект на свой "сервер" и отправку короткой текстовой строки, вижу получение сервером этой строки и перед ней длинный заголовок

POST /aaa HTTP/1.1
Host: 192.168.0.3
Connection: keep-alive
Content-Length: 27
Accept: text/plain
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Origin: null
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7


1. какое поле $.ajax (и как) нужно настроить, чтоб данные шли без заголовка?
2. если со стороны сервера шлется пакет в программу на js, не вызывается коллбэк функция (о которой я тут спрашивал ранее). для того чтоб она вызывалась - нужен заголовок какой-то?

на низком уровне обмен произвольными данными невозможен?


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