Je suis nouveau à réagirJS et UI et je voulais savoir comment faire un simple repos reposant POST appel de code reaJS.
S'il y a un exemple, ce serait vraiment utile.
Merci.
Directement du documents React :
fetch('https://mywebsite.com/endpoint/', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
firstParam: 'yourValue',
secondParam: 'yourOtherValue',
})
})
(Cela consiste à publier du code JSON, mais vous pouvez également utiliser, par exemple, multipart-form.)
React n'a pas vraiment d'opinion sur la manière dont vous passez REST. En gros, vous pouvez choisir le type de bibliothèque que vous préférez pour la tâche AJAX.
La méthode la plus simple avec du vieux JavaScript simple est probablement la suivante:
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 appelants REST, il peut être judicieux de placer ce type de logique dans une classe utilisable dans tous les composants. Par exemple. RESTClient.post(…)
Un autre paquet récemment populaire est: axios
Installer: npm install axios --save
Requêtes simples basées sur des promesses
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
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);
});
À partir de 2018, vous disposez d'une option plus moderne qui consiste à incorporer async/wait dans votre application ReactJS. Une bibliothèque client HTTP basée sur les promesses, telle que axios, peut être utilisée. L'exemple de code est donné ci-dessous:
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) {
...
}
}
...
}
Je pense que cette façon aussi une manière normale. Mais désolé, je ne peux pas décrire en anglais ((
submitHandler = e => {
e.preventDefault()
console.log(this.state)
fetch('http://localhost:5000/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)
})
}
https://googlechrome.github.io/samples/fetch-api/fetch-post.html
fetch ('url/questions', {méthode: 'POST', en-têtes: {Accepter: 'application/json', 'Content-Type': 'application/json',}, corps: JSON.stringify (this.state) }). then (response => {console.log (réponse)}) .catch (error => {console.log (error)})
Here est une liste de comparaison de bibliothèques ajax basée sur les fonctionnalités et le support. Je préfère utiliser fetch pour le développement côté client uniquement ou isomorphic-fetch pour une utilisation à la fois du développement côté client et du côté serveur.
Pour plus d'informations sur isomorphic-fetch vs fetch