Имя: Пароль:
1C
 
Как сделать ответ json для GET-запросов, данные которого формируются html-страничкой клиен
0 Caber
 
13.10.23
09:25
Вот такая вот непонятная вереница, которую никто не понял. Объясняю зачем это нужно:
Есть 1С база, которая опрашивает сервер GET-ами.
А сервер, который бы формировал ответ - не готов. Вместо него нужно сделать заглушку, которая будет отправлять строку JSON в ответ на запрос.

А вот теперь сложность - должна быть страничка для оператора с парой кнопок. В зависимости от нажатий оператором на кнопки, в строке JSON содержимое меняется.

Как я эту заглушку хотел сделать: javascript с веб-странички пишет в файл нужное содержимое, а запрос к файлу выполняется обычным GETом.

Вот код, который мне нужен и работает на Node JS, а не обычной страничке в браузере. Я не знаю что это такое и как его развернуть в моем случае.

function writeTextFile(afilename, output)
{
  var txtFile =new File([""], afilename, {type: "text/plain"});
  txtFile.writeln(output);
  txtFile.close();
}
1 Caber
 
13.10.23
07:06
Другой вариант вопроса:
Как сделать веб-заглушку вместо полноценной программы, которая будет отвечать на GET-запросы извне.
2 Valdis2007
 
13.10.23
07:18
(1) размести по адресу заглушки файл index.html

внутри файла подключи js скрипт, который будет отдавать json который тебе надо
3 Caber
 
13.10.23
08:32
(2) Можно пример кода или способ, как отдавать нужные данные вместо самого файла?
4 Caber
 
13.10.23
08:34
т.е. Вместо содержимого файла Index.html.
При get запросе озвращается всегда страничка в виде строки, js не исполняется при этом
5 OneMan1
 
13.10.23
08:39
https://bottlepy.org/docs/dev/

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return {"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc"},
      {"value": "Open", "onclick": "OpenDoc"},
      {"value": "Close", "onclick": "CloseDoc"}
    ]
  }
}}

run(host='localhost', port=8080)
6 OneMan1
 
13.10.23
08:40
запускается на 15 минут
7 vde69
 
13.10.23
08:51
давай по порядку

1. пустой ответ должен формироваться на сервере и файл лежит на сервере
2. js скрипт выполняется на клиенте и не может записать файл на сервер


то есть нужна такая логика
у оператора на клиенте есть страница, по нажатию он отправляет post запрос на сервер, сервер должен обработать этот пост запрос и заменить определенный файл на сервере на пустышку (или наоборот на нужный)
8 Valdis2007
 
13.10.23
09:27
(4) При get запросе озвращается всегда страничка в виде строки, js не исполняется при этом ...Это прям что то новое  в веб))
9 Valdis2007
 
13.10.23
09:28
(3) <!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
    <div>...</div>
    <script>
       alert("привет")
    </script>
</body>
</html>
10 Valdis2007
 
13.10.23
09:46
(3) пример с запросом файла json

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
    <div>...</div>
    <script>
let url = new URL('http://адрес файла JSON');
//
let respons_1c = await fetch(url);
//.json() указывает объекту класса response формат, в котором мы хотим получить данные.
let arry_obj = await respons_1c.json();

    </script>
</body>
</html>
11 Caber
 
13.10.23
11:33
(8) Я имею ввиду то, что исполнять js начинает получатель, т.е. браузер. А у меня то получаеть - программный код в 1с.
12 Valdis2007
 
13.10.23
12:42
(11) если не охото поднимать Node JS, сделай вместо него http сервис 1с, пусть он json генерит
13 Fram
 
13.10.23
14:50
А в чем сложность простенький nodejs сервер поднять?