18.11.2021, 13:24
|
Интересующийся
|
|
Регистрация: 18.11.2021
Сообщений: 18
|
|
вопрос по 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 принимает этот пакет по езернету, обрабатывает и отвечает своим пакетом. Вопрос - как в программе оформить прием и обработку ответа? куда попадает принятый пакет - в какой массив, в какую структуру, какая процедура вызывается?
|
|
18.11.2021, 13:48
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от s868
|
куда попадает принятый пакет - в какой массив, в какую структуру, какая процедура вызывается?
|
Почитай документацию по $.ajax()
https://basicweb.ru/jquery/jquery_method_ajax.php
|
|
18.11.2021, 17:05
|
Интересующийся
|
|
Регистрация: 18.11.2021
Сообщений: 18
|
|
спасибо, это то что искал. правильно ли я понял, что
нужно в $.ajax указать коллбек-функцию в параметре success, при поступлении данных от сервера эта функция и будет вызвана
|
|
18.11.2021, 17:19
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
s868,
|
|
18.11.2021, 17:42
|
Интересующийся
|
|
Регистрация: 18.11.2021
Сообщений: 18
|
|
я только начинаю в js и возникают трудности с элементарными вещами.
подскажите пожалуйста как определить поле success и коллбэк- процедуру так, чтобы после приема от сервера полученный пакет данных выдавался в alert(" ")
$.ajax({
url: 'http://192.168.0.55:80/aaa',
data: JSON.stringify({state: 1}),
type: 'POST',
success: {ЧТО ТУТ ПИСАТЬ?},
})
|
|
18.11.2021, 17:55
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,745
|
|
success: function (resp) {alert(resp)},
Читайте документацию. Там и примеры есть
https://api.jquery.com/jquery.ajax/
|
|
18.11.2021, 17:57
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
s868,
success: function(data) {
alert(data);
},
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
19.11.2021, 12:53
|
Интересующийся
|
|
Регистрация: 18.11.2021
Сообщений: 18
|
|
программой 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, не вызывается коллбэк функция (о которой я тут спрашивал ранее). для того чтоб она вызывалась - нужен заголовок какой-то?
на низком уровне обмен произвольными данными невозможен?
|
|
|
|