Как я могу передать объект со встроенным объектом из JavaScript (jQuery / ajax) в Python (Flask)? - PullRequest
2 голосов
/ 06 апреля 2019

Я пытаюсь передать структурированные данные с веб-страницы обработчику колб, но я получаю ключевые ошибки.

В JavaScript веб-страницы у меня есть объект, который имеет два элемента, один из которых имеет значение, другой объект.

Проблема на стороне Flask / Python.Я могу получить первый элемент ("cid") с этим:

print request.form ["cid"]

Это работает.Но я не могу получить доступ или получить какие-либо значения att (ribute) ("att").

Итак, request.form ["att"] возвращает KeyError: 'att'

Я могучтобы получить доступ к request.form["att[sw1]"], но это сглаживает мой тип данных.

Я бы хотел получить элементы att в виде списка или словаря, чтобы я мог просматривать их в своем приложении.Я по сути хочу request.form["att"]["sw1"] или request.form.att["sw1"].

   var controllerData = {
              sw1  : $('#sw1').val(),
              sw2  : $('#sw2').val(),
              sw3  : $('#sw3').val(),
              sw4  : $('#sw4').val()}

   var updateData = {cid : 1, att: controllerData };

   $.ajax({
     type: "POST",
     url:  "/SetSettings",
     data: updateData,
     success: function(d) { },
     error: function(d) {alert('Error saving settings!');},
     dataType: "json"
   });

1 Ответ

0 голосов
/ 06 апреля 2019

Вы должны сериализовать ваш объект данных в строку с JSON.stringify () .

$.ajax({
   type: "POST",
   url:  "/SetSettings",
   data: JSON.stringify(updateData),
   success: function(d) { },
   error: function(d) {alert('Error saving settings!');},
   dataType: "json"
});

PS: некоторый объект, например window или объект, содержащий циклические зависимости, не может быть сериализован таким образом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...