NodeJS nicht die Rückgabe von Daten an jQuery.getJSON
Ich habe NodeJS und es zurückgeben von Daten, wenn ich navigieren Sie zu der URL: http://184.106.206.235
Jedoch, wenn ich versuche zu nennen, die URL mit $.getJSON
der Rückruf zeigt null
für die data
variable und "success"
für die textStatus
variable.
Ich mir vorstellen, dies könnte eine cross-domain-Sache, aber ich bin überrascht, dass der textStatus
sagt "success"
wenn das der Fall ist.
In einem Fall ist es hilfreich, hier ist das server-side JS:
http.createServer(function(req, res){
var output = {message: "Hello World!"};
var body = JSON.stringify(output);
res.writeHead(200, {'Content-Type': 'application/json', 'Content-Length': body.length});
res.end(body);
}).listen(80, "184.106.206.235");
Irgendwelche Ideen?
- Ist die JavaScript-gehostet auf
http://184.106.206.235
? - Ja, obwohl ich versuche, den Zugriff auf "client" - JS in einer anderen Domäne gehostet.
- Gut, dass wäre Ihr problem dann. Was "text-status"?
- Wenn Sie einen Blick auf die callback api.jquery.com/jQuery.getJSON, Sie werden sehen, dass es zurückgeben sollte, "Daten" und "textStatus" Objekte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie die "Access-Control-Allow-Origin": "* " - Eigenschaft, um Ihre writeHead () - Aufruf:
Nur ein Hinweis für alle mit dem gleichen problem, die Lösung oben hat bei mir mit einer kleinen änderung:
"Content-Type": "application/json"
Nicht "text/json".
Danke für die Lösung!!! Es fuhr mich verrückt.
wenn Sie express Rahmen, den Sie können, versuchen Sie eine der folgenden Optionen:
1.
res.contentType('json');
setzen auf content-Typ.2.
res.send({ some: 'json' });
wird die Art des Inhalts und analysieren es für Sie.3.
res.json({ user: 'tj' });
wahrscheinlich der beste Weg, es zu tun.hoffe es hilft 🙂