mithilfe von jquery-AJAX-mit node.js mit dem response vom server
dies ist meine erste mal eine Frage hier, ich habe meist nur ein lurker schleicht auf andere Fragen, aber das ist etwas, was ich versucht habe, um herauszufinden, und für das Leben von mir kann nicht.
Im Grunde das, was ich Tue, ist die Verwendung von AJAX auf der Clientseite zu hüpfen über die server, ausführen von code, der durchsucht eine externe API, die gibt mir ein paar Daten, dann brauche ich diese Daten zurück an den client. Hier ist mein code... das ist alles mit node.js mit express
Client-Seite
$('#search').click(function(){
$.ajax({
type: "GET",
url: "/search",
dataType: "json"
}).done (function (data) {
alert(data);
});
});
Server-Seite
app.get('/search', function(req, res){
factual.get('/t/places',{q:'starbucks'}, function (error, data) {
console.log(data);
res.send(data);
});
});
Jetzt weiß ich, dass wenn die #Schaltfläche suchen angeklickt wird, es geht mehr um die server und erfolgreich läuft, dass code. Aber ich weiß nicht, wie zu bekommen, dass die Daten aus dem server und wieder in den client, mit ihm zu arbeiten gibt.
Fand ich andere Beiträge, die Dinge erwähnt, res.senden/res.schreiben/res.Ende, ich habe versucht, jede form von denen, meines Wissens nach, und ich kann nie scheinen, um Daten zurück an den client.
Irgendwelche Tipps oder eventuell bessere Möglichkeiten, dies zu tun, würde sehr geschätzt werden.
- Die content-type-header application/json
- Dein code sieht einfach nur gut. Hier ist ein gist können Sie Folgendes versuchen: legen Sie beide Dateien in dasselbe Verzeichnis, starten Sie den server (
node app.js
) und öffnenhttp://localhost:3012/
. Es nicht umzusetzenfactual.get()
, obwohl, und ich würde empfehlen, dass Sie überprüfenerror
zu sehen, ob irgendwelche Fehler auftreten, die möglicherweise Probleme verursachen. - Dank Ihrer kleinen test robertklep, du hast Recht, mein code ist alles völlig in Ordnung, selbst mit den Fakten.get() implementiert. Also das Problem scheint irgendwo anders zu sein...
- Sie müssen irgendeine Art von Assistenten robert, da ich nichts verändert habe, aber es funktioniert jetzt. Und zu kommentieren, was lib3d sagte, Sie don ' T müssen Sie die header-Typ, wenn Sie Sie senden, json, weiß er es json.
- wenn res.senden weiß, es ist json, wenn die Daten json, was ist der Unterschied mit res.json ? Ich bin mal gespannt.
res.send
wird versuchen zu erraten, den Inhaltstyp auf der Grundlage der Argumente, die es übergeben wird. Internres.send
Anrufethis.json
wenn es für angemessen erachtet. Siehe: github.com/visionmedia/express/blob/master/lib/...- Auch Kasse die Unterlagen für die express hier expressjs.com/api.html#res.json, res.json stellt die Dinge in json, so übergeben Sie in etwas, das bereits json hat den gleichen Effekt wie mit res.senden, res.senden Sie Lesen können, was der Inhalt ist
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie den folgenden code der server-Seite:
Sollte es funktionieren. Der code der client-Seite sieht ok.
Edit: können Sie auch :