Comment faire un appel rest post à partir du code ReactJS?

je suis nouveau à reactJS et UI et je voulais savoir comment faire un simple repos basé sur l'appel POST de reactJS code.

S'il y a un exemple présent, il serait vraiment utile.

Merci.

55
demandé sur Divya 2016-07-21 20:24:03

7 réponses

Directement à partir de la Réagir docs:

fetch('https://mywebsite.com/endpoint/', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    firstParam: 'yourValue',
    secondParam: 'yourOtherValue',
  })
})

(c'est poster JSON, mais vous pouvez aussi faire, par exemple, multipart-form.)

102
répondu Malvolio 2017-08-04 14:06:46

React n'a pas vraiment d'opinion sur la façon dont vous faites des appels de repos. Fondamentalement, vous pouvez choisir n'importe quel type de bibliothèque AJAX que vous aimez pour cette tâche.

la façon la plus facile avec le Vieux JavaScript simple est probablement quelque chose comme ceci:

var request = new XMLHttpRequest();
request.open('POST', '/my/url', true);
request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
request.send(data);

Dans les navigateurs modernes, vous pouvez également utiliser fetch .

si vous avez plus de composants qui font des appels de repos il pourrait être logique de mettre ce genre de logique dans une classe qui peut être utilisé dans les composants. Par exemple: RESTClient.post(…)

11
répondu amann 2017-05-27 15:00:40

vous pouvez installer superagent

npm install superagent --save

puis pour faire un appel post au serveur

import request from "../../node_modules/superagent/superagent";

request
.post('http://localhost/userLogin')
.set('Content-Type', 'application/x-www-form-urlencoded')
.send({ username: "username", password: "password" })
.end(function(err, res){
console.log(res.text);
});  
8
répondu Chandrakant Thakkar 2017-07-18 09:24:53

un autre paquet récemment populaire est: axios

Installation : npm install axios --save

Simple Promesse demandes


axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
3
répondu Vivek Doshi 2017-11-15 09:43:13

à partir de 2018 et au-delà, vous avez une option plus moderne qui est d'incorporer async/wait dans votre application ReactJS. Une bibliothèque de clients HTTP basée sur des promesses comme axios peut être utilisée. Le code de l'échantillon est le suivant:

import axios from 'axios';
...
class Login extends Component {
    constructor(props, context) {
        super(props, context);
        this.onLogin = this.onLogin.bind(this);
        ...
    }
    async onLogin() {
        const { email, password } = this.state;
        try {
           const response = await axios.post('/login', { email, password });
           console.log(response);
        } catch (err) {
           ...
        }
    }
    ...
}
2
répondu Kevin Le - Khnle 2017-12-31 08:07:45

Ici est la liste des bibliothèques ajax comparaison basée sur les fonctionnalités et de soutien. Je préfère utiliser fetch pour le développement côté client ou isomorphic-fetch pour l'utilisation dans le développement côté client et Côté Serveur.

Pour plus d'informations sur isomorphe-fetch vs chercher

0
répondu user3603575 2017-05-23 10:31:38

voici un exemple: https://jsfiddle.net/69z2wepo/9888 /

$.ajax({
    type: 'POST',
    url: '/some/url',
    data: data
  })
  .done(function(result) {
    this.clearForm();
    this.setState({result:result});   
  }.bind(this)
  .fail(function(jqXhr) {
    console.log('failed to register');
  });

il a utilisé la méthode jquery.ajax mais vous pouvez facilement la remplacer par des libs AJAX comme axios, superagent ou fetch.

-4
répondu Sanyam Agrawal 2017-02-03 14:56:36