Я новичок в ReactJS и пользовательском интерфейсе, и я хотел знать, как сделать простой вызов POST на основе REST из кода ReactJS.
Если есть какой-либо пример, это было бы действительно полезно.
Я новичок в ReactJS и пользовательском интерфейсе, и я хотел знать, как сделать простой вызов POST на основе REST из кода ReactJS.
Если есть какой-либо пример, это было бы действительно полезно.
Ответы:
Прямо из документации React :
(Это публикация JSON, но вы также можете использовать, например, multipart-form.)
источник
fetch()
функция не возвращает данные , она просто возвращает обещание .fetch
, что он встроен в React, а это не так, и нет ссылки на упомянутые документы.fetch
является (на момент написания) экспериментальным API на основе Promise . Для совместимости с браузером вам понадобится полифилл babel .React на самом деле не имеет мнения о том, как вы совершаете вызовы REST. По сути, для этой задачи вы можете выбрать любую библиотеку AJAX, которая вам нравится.
Самый простой способ с простым старым JavaScript, вероятно, выглядит примерно так:
В современных браузерах вы также можете использовать
fetch
.Если у вас есть больше компонентов, которые выполняют вызовы REST, возможно, имеет смысл поместить такую логику в класс, который можно использовать во всех компонентах. Например
RESTClient.post(…)
источник
fetch
илиsuperagent
илиjQuery
илиaxios
или что - то другое , что не является частью «ваниль React» для того , чтобы сделать что - нибудь другое , чем то , что размещен выше ,JSON.stringify({"key": "val"})
а затем на стороне колбыrequest.get_json()
JSON.stringify
сначала это сделать.Еще один популярный в последнее время пакет: axios
Установить:
npm install axios --save
Запросы на основе простых обещаний
источник
вы можете установить суперагент
затем для отправки почтового звонка на сервер
источник
Начиная с 2018 года и позже у вас есть более современный вариант - включить async / await в ваше приложение ReactJS. Можно использовать основанную на обещаниях клиентскую библиотеку HTTP, такую как axios. Пример кода приведен ниже:
источник
await
-SyntaxError: await is a reserved word (33:19)
Я считаю, что это тоже нормальный путь. Но извините, я не могу описать на английском ((
https://googlechrome.github.io/samples/fetch-api/fetch-post.html
fetch ('url / questions', {method: 'POST', headers: {Accept: 'application / json', 'Content-Type': 'application / json',}, body: JSON.stringify (this.state) }). then (response => {console.log (response)}) .catch (error => {console.log (error)})
источник
Вот список сравнения библиотек ajax на основе функций и поддержки. Я предпочитаю использовать выборку только для разработки на стороне клиента или изоморфную выборку для использования как на стороне клиента, так и на стороне сервера.
Для получения дополнительной информации об изоморфной выборке и выборке
источник
Вот модифицированная служебная функция (еще один пост в стеке) для получения и публикации обоих. Создайте файл Util.js.
Использование, как показано ниже, в другом компоненте
источник
Вот пример: https://jsfiddle.net/69z2wepo/9888/
Он использовал
jquery.ajax
метод, но вы можете легко заменить его библиотеками на основе AJAX, такими как axios, superagent или fetch.источник
'{"Id":"112","User":"xyz"}'
и измените URL-адрес на localhost: 8080 / myapi / ui / start, вот и все, как только вызов XHR будет успешным, вы попадете в метод done, и у вас будет доступ к вашим данным через результат свойство.