URL-адрес публикации HTTPS с массивом объектов - PullRequest
0 голосов
/ 24 марта 2020

Я пытался отформатировать URL POST с объектами в моем массиве, поскольку они необходимы для публикации в моем REST API. Я вынужден использовать archai c API POST-систему от поставщика и пытался собрать решение.

В основном JSON выглядит примерно так:

{"api_key": "12234", 
"server_id:"qwp2222",
"recipients": [
{"email":"john@doe.com", 
"name": "john doe"}]
}

Я пытаюсь отформатировать пары ключ-значение в массиве как часть URL, чтобы он отправлялся на конечную точку без много фанфар. У меня есть оставшаяся часть URL вместе без проблем, проблема заключается только в массиве получателей.

Как мне написать POST URL, чтобы убедиться, что я могу правильно разместить массив объектов ?

Заранее благодарен за помощь!

1 Ответ

0 голосов
/ 25 марта 2020

Здесь не работает, но этот код создаст линейную структуру из вашего JSON, создайте форму и отправьте ее себе.

Если вы запустите ее на локальном или другом месте и добавите f.action = «Ваша страница получения или отправки», она отправит данные правильно.

var data = {
  api_key: '12234',
  server_id: 'qwp2222',
  recipients: [{
    email: 'john@doe.com',
    name: 'john doe'
  }]
};

function collectItems(res, json) {
  for (var a in json) {
    if (json[a].constructor === Array ||
      json[a].constructor === Object) {
      collectItems(res, json[a]);
    } else {
      res.push([a, json[a]]);
    }
  }
}
var all = [];
collectItems(all, data);
var f = document.createElement('FORM');
f.method = 'post';
// default get: ...?api_key=12234&server_id=qwp2222&email=john@doe.com&name=john+doe
for (var e in all) {
  var i = document.createElement('INPUT');
  i.name = all[e][0];
  i.value = all[e][1];
  i.type = 'hidden'; // do not show values sent
  f.appendChild(i);
}
if (location.search) {
  alert("Submit result:" & location.href);
} else {
  document.body.appendChild(f);
  f.submit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...