/ Reactjs получение кода состояния 405 в браузере - PullRequest
1 голос
/ 02 августа 2020

Я разрабатываю приложение для реагирования на DHIS2 и данные в Интернете, которое структурировано следующим образом:

indicators: [
  {
   name: "something",
   attributeValues : [ {}],
   anotherNode: "anything",

  },
 {},
 {}, ...
]

Я пытаюсь обновить весь узел attributeValues. Я использую запрос на выборку, но получение

405 метода не разрешено

Как вы думаете, что я делаю неправильно. Это почтовый запрос, который я написал.

let dataToSend = {
  lastUpdated: currentTime,
  created: currentTime,
  value: newName,
  attribute: {
    id: indicatorID,
  },
};

fetch(`https://www.namis.org/namis1/api/indicators/${id}/attributeValues`, {
  body: JSON.stringify(dataToSend),
  headers: {
    Authorization: basicAuth,
    "Content-type": "application/json",
  },
  method: "POST",
}).then((response) => response.json());

Если вопрос является дублированием, направьте меня к возможному уже существующему решению.

С уважением.

1 Ответ

1 голос
/ 13 августа 2020

, значит проблема решена. Я не знаю, это система DHIS2 или что-то в этом роде, но я не могу обновить только один узел индикатора, потому что POST предназначен для создания узлов, которых не существует.

Итак, правильный способ использовать запрос PUT, и в то же время, вместо того, чтобы просто передавать новые данные в узел attributeValues, я обновляю весь узел индикатора, т.е. соответствующий путь должен быть:

let dataToSend =  {
 name: "something",
 attributeValues : [ {
   lastUpdated: currentTime,
   created: currentTime,
   value: newName,
   attribute: {
     id: indicatorID}
 }],
anotherNode: "anything"}



fetch(`https://www.namis.org/namis1/api/indicators/${id}`, {
body: JSON.stringify(dataToSend),
headers: {
  Authorization: basicAuth,
  "Content-type": "application/json",
  },
  method: "PUT",
  }).then((response) => response.json());

SO конечная точка - это идентификатор индикатора, а данные для отправки также включают другие узлы в индикаторе, который должен быть обновлен, изменения только в узле attributeValue.

Если кто-то сталкивается с той же проблемой и не может понять этот ответ, свяжитесь со мной для получения дополнительной информации.

...