Soy nuevo en ReactJS y UI y quería saber cómo hacer una simple llamada POST basada en REST desde el código ReactJS.
Si hay algún ejemplo presente, sería realmente útil.
Soy nuevo en ReactJS y UI y quería saber cómo hacer una simple llamada POST basada en REST desde el código ReactJS.
Si hay algún ejemplo presente, sería realmente útil.
Respuestas:
Directamente de los documentos React :
(Esto está publicando JSON, pero también podría hacer, por ejemplo, formulario multiparte).
fuente
fetch()
función no devuelve los datos , solo devuelve una promesa .fetch
está integrada en React, que no es así, y no hay ningún enlace a los documentos a los que se hace referencia.fetch
es (al momento de escribir) una API experimental basada en Promise . Para compatibilidad con el navegador, necesitará un polyfill de babel .React realmente no tiene una opinión sobre cómo hacer llamadas REST. Básicamente, puede elegir el tipo de biblioteca AJAX que desee para esta tarea.
La forma más fácil con JavaScript antiguo es probablemente algo como esto:
En los navegadores modernos también puede usar
fetch
.Si tiene más componentes que hacen llamadas REST, podría tener sentido colocar este tipo de lógica en una clase que se pueda usar en todos los componentes. P.ej
RESTClient.post(…)
fuente
fetch
osuperagent
ojQuery
oaxios
o alguna otra cosa que no forma parte de la "vainilla React" con el fin de hacer otra cosa que lo que se publica por encima de cualquier .JSON.stringify({"key": "val"})
y luego, en el lado del matraz, haga lo siguienterequest.get_json()
JSON.stringify
hacerlo primero.Otro paquete recientemente popular es: axios
Instalar en pc :
npm install axios --save
Promesa simple basada en solicitudes
fuente
puedes instalar superagent
luego para hacer una llamada posterior al servidor
fuente
A partir de 2018 y más allá, tiene una opción más moderna que es incorporar async / await en su aplicación ReactJS. Se puede utilizar una biblioteca de cliente HTTP basada en promesas, como axios. El código de muestra se proporciona a continuación:
fuente
await
-SyntaxError: await is a reserved word (33:19)
Creo que de esta manera también es normal. Pero lo siento, no puedo describir en inglés ((
https://googlechrome.github.io/samples/fetch-api/fetch-post.html
fetch ('url / preguntas', {método: 'POST', encabezados: {Aceptar: 'application / json', 'Content-Type': 'application / json',}, body: JSON.stringify (this.state) }). luego (respuesta => {console.log (respuesta)}) .catch (error => {console.log (error)})
fuente
Aquí hay una lista de la comparación de bibliotecas ajax basada en las características y el soporte. Prefiero usar fetch solo para el desarrollo del lado del cliente o isomorphic-fetch para usar tanto en el desarrollo del lado del cliente como del lado del servidor.
Para obtener más información sobre isomorphic-fetch vs fetch
fuente
Aquí hay una función de utilidad modificada (otra publicación en la pila) para obtener y publicar ambas. Hacer el archivo Util.js.
Uso como a continuación en otro componente
fuente
Aquí hay un ejemplo: https://jsfiddle.net/69z2wepo/9888/
Utilizó el
jquery.ajax
método, pero puede reemplazarlo fácilmente con bibliotecas basadas en AJAX como axios, superagent o fetch.fuente
'{"Id":"112","User":"xyz"}'
y cambie la URL a localhost: 8080 / myapi / ui / start, eso es todo, una vez que la llamada XHR sea exitosa, aterrizará en el método hecho y tendrá acceso a sus datos a través del resultado propiedad.