Ich bin neu auf reactJS und UI und ich wollte wissen, wie man einen einfachen Rest-basierten POST-Aufruf von reactJS Code.Wie mache ich einen Rest Post Call von ReactJS Code?
Wenn ein Beispiel vorhanden ist, wäre es sehr hilfreich.
Danke. Hier
Ich bin neu auf reactJS und UI und ich wollte wissen, wie man einen einfachen Rest-basierten POST-Aufruf von reactJS Code.Wie mache ich einen Rest Post Call von ReactJS Code?
Wenn ein Beispiel vorhanden ist, wäre es sehr hilfreich.
Danke. Hier
ein Beispiel: 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');
});
Es verwendete jquery.ajax
Methode, aber man kann es leicht mit AJAX-basierten Libs wie axios, Superagent oder holen ersetzen.
direkt aus dem Reagieren docs:
fetch('https://mywebsite.com/endpoint/', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
firstParam: 'yourValue',
secondParam: 'yourOtherValue',
})
})
(Dies ist JSON Posting, aber man könnte auch tun, zum Beispiel, mehrt-Form.)
Danke für das Beispiel :) aber jetzt bekomme ich einen weiteren Fehler 'cant find variable fetch'.Auch bin ich total neu in React JS, also bin ich mir nicht sicher, ob das der richtige Weg ist, es zu tun var APP = React.createClass ({ \t render() { \t return (\t fetch ('http: // localhost: 8080/api/ui/Start', { Methode: 'Post', Körper: JSON.stringify ({ Id : '112', Benutzer: 'xyz' }) }) \t); \t }}); – Divya
Sie müssen es [installieren und importieren] (https://github.com/github/fetch). Vergessen Sie nicht, dass die 'fetch()' Funktion das _data_ nicht zurückgibt, sondern nur ein [Versprechen] (https://www.promisejs.org/) zurückgibt. – Malvolio
haha @Divya, ich wollte gerade den gleichen Kommentar machen, bevor ich deinen gelesen habe. Nicht sicher, ob es in React.createClass eingefügt werden soll oder nicht. Könnten wir bitte auch einen Link zu den reaktiven Dokumenten haben? Ich habe versucht, ihre Website (https://facebook.github.io/react/docs/hello-world.html) erfolglos zu durchsuchen. –
reagieren nicht wirklich eine Meinung über wie Sie REST-Anrufe tätigen. Grundsätzlich können Sie für diese Aufgabe eine beliebige AJAX-Bibliothek auswählen.
Der einfachste Weg, mit plain old JavaScript ist wahrscheinlich so etwas wie folgen aus:
var request = new XMLHttpRequest();
request.open('POST', '/my/url', true);
request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
request.send(data);
In modernen Browsern auch fetch
verwenden kannst.
Wenn Sie mehr Komponenten haben, die REST-Aufrufe ausführen, kann es sinnvoll sein, diese Art von Logik in eine Klasse zu integrieren, die für alle Komponenten verwendet werden kann. Z.B. RESTClient.post(…)
Here ist die Liste von Ajax-Vergleichsbibliotheken basierend auf den Funktionen und Unterstützung. Ich bevorzuge fetch für nur Client-Seite Entwicklung oder isomorphic-fetch für die Verwendung in Client-Seite und Server-Seite Entwicklung.
Weitere Informationen über isomorphic-fetch vs fetch
können Sie Superagent installieren
npm install superagent --save
dann für Make Post Aufruf Server
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);
});
Weitere kürzlich beliebte Pakete ist: axios
installieren : npm install axios --save
Einfache Versprechen basierte Anfragen
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Ab 2018 und darüber hinaus haben Sie eine modernere Option, die async/await in Ihrer ReactJS Anwendung zu integrieren ist. Eine Versprechen-basierte HTTP-Client-Bibliothek wie Axios kann verwendet werden. Der Beispielcode ist unten angegeben:
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) {
...
}
}
...
}
Vielen Dank für das Beispiel :). Ich wollte auch verstehen, ob mein Dienst JSON-Formatdaten erwartet. Welche Änderungen wären dann erforderlich?Jede Art von Information wäre wirklich hilfreich. Wenn ich also den curl-Befehl verwende, um den Endpunkt zu treffen, ist es wie curl -v -X POST http: // localhost: 8080/myapi/ui/start -d '{"Id": "112", "Benutzer": " xyz "} ' so wie kann ich einen solchen Dienst anrufen. – Divya
erstellen Sie eine Variable namens Daten mit ''{" Id ":" 112 "," User ":" xyz "}'' und ändern Sie die URL zu localhost: 8080/myapi/ui/start, das ist es, einmal das XHR Wenn der Aufruf erfolgreich ist, landen Sie in der Methode done und Sie haben über die Eigenschaft result Zugriff auf Ihre Daten. –