Jestem nowy w ReactJS i UI i chciałem wiedzieć, jak wykonać proste wywołanie POST oparte na REST z kodu ReactJS.
Gdyby był jakiś przykład, byłby naprawdę pomocny.
Jestem nowy w ReactJS i UI i chciałem wiedzieć, jak wykonać proste wywołanie POST oparte na REST z kodu ReactJS.
Gdyby był jakiś przykład, byłby naprawdę pomocny.
Odpowiedzi:
Prosto z dokumentacji React :
(To jest wysyłanie JSON, ale możesz też zrobić na przykład formularz wieloczęściowy).
źródło
fetch()
funkcja nie zwraca danych , po prostu zwraca obietnicę .fetch
jest wbudowana w React, a nie jest, i nie ma linku do dokumentów, do których się odwołuje.fetch
jest (w czasie pisania) eksperymentalnym API opartym na Promise . Aby zachować zgodność z przeglądarkami, będziesz potrzebować wypełnienia babel .React tak naprawdę nie ma opinii na temat sposobu wykonywania połączeń REST. Zasadniczo do tego zadania możesz wybrać dowolną bibliotekę AJAX.
Najłatwiejszym sposobem ze zwykłym starym JavaScriptem jest prawdopodobnie coś takiego:
W nowoczesnych przeglądarkach można również używać
fetch
.Jeśli masz więcej komponentów, które wykonują wywołania REST, sensowne może być umieszczenie tego rodzaju logiki w klasie, której można używać w komponentach. Na przykład
RESTClient.post(…)
źródło
fetch
lubsuperagent
lubjQuery
lubaxios
lub coś innego, co nie jest częścią „wanilia React”, aby zrobić coś innego niż to, co napisali powyżej .JSON.stringify({"key": "val"})
a następnie po stronie kolby zróbrequest.get_json()
JSON.stringify
to najpierw.Inne ostatnio popularne pakiety to: axios
Zainstalować :
npm install axios --save
Proste żądania oparte na obietnicy
źródło
możesz zainstalować superagenta
następnie do wykonania połączenia pocztowego z serwerem
źródło
Od 2018 roku i później masz bardziej nowoczesną opcję, która polega na włączeniu async / await do aplikacji ReactJS. Można użyć opartej na obietnicy biblioteki klienta HTTP, takiej jak axios. Przykładowy kod jest podany poniżej:
źródło
await
-SyntaxError: await is a reserved word (33:19)
Myślę, że w ten sposób też w normalny sposób. Ale przepraszam, nie mogę opisać po angielsku ((
https://googlechrome.github.io/samples/fetch-api/fetch-post.html
fetch ('url / questions', {metoda: 'POST', headers: {Accept: 'application / json', 'Content-Type': 'application / json',}, body: JSON.stringify (this.state) }). then (response => {console.log (odpowiedź)}) .catch (błąd => {console.log (błąd)})
źródło
Oto lista porównawcza bibliotek Ajax na podstawie funkcji i wsparcia. Wolę używać pobierania tylko do programowania po stronie klienta lub pobierania izomorficznego do używania zarówno po stronie klienta, jak i po stronie serwera.
Więcej informacji na temat pobierania izomorficznego vs pobierania
źródło
Oto zmodyfikowana funkcja util (kolejny post na stosie) do pobierania i wysyłania obu. Utwórz plik Util.js.
Użycie jak poniżej w innym komponencie
źródło
Oto przykład: https://jsfiddle.net/69z2wepo/9888/
Używał
jquery.ajax
metody, ale można ją łatwo zastąpić bibliotekami opartymi na AJAX, takimi jak axios, superagent lub fetch.źródło
'{"Id":"112","User":"xyz"}'
i zmień adres URL na localhost: 8080 / myapi / ui / start, to wszystko, po pomyślnym wywołaniu XHR wylądujesz w gotowej metodzie i będziesz mieć dostęp do swoich danych za pośrednictwem wyniku własność.