einfache ajax-Anfrage an localhost nodejs server
Ich schrieb sehr einfache server :
/* Creating server */
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
/*Start listening*/
server.listen(8000);
Ich es mit nodejs.
Nun will ich schreiben von einfachen client, der die Nutzung der ajax-Aufruf send request to server und Druck-Antwort ("Hello World")
Hier javascript Bauherr:
$.ajax({
type: "GET",
url: "http://127.0.0.1:8000/" ,
success: function (data) {
console.log(data.toString);
}
});
Wenn ich open client-html-Datei bekomme ich folgende Fehlermeldung in der Konsole:
XMLHttpRequest cannot load http://127.0.0.1:8000/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Ich habe versucht, das hinzufügen, um ajax-Aufruf folgende:
$.ajax({
type: "GET",
url: "http://127.0.0.1:8000/" ,
dataType: 'jsonp',
crossDomain: true,
success: function (data) {
console.log(data.toString);
}
});
Aber dann bekomme ich
Resource interpreted as Script but transferred with MIME type text/plain: "http://127.0.0.1:8000/?callback=jQuery211046317202714271843_1410340033163&_=1410340033164".
Jemand erklären kann was ich falsch gemacht habe und vielleicht wie man es beheben?
Vielen Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ersten Fehler wird verursacht durch CORS (Cross-Origin Resource Sharing) - Richtlinie. Es ist in der Regel von allen Browsern, dass Sie nicht eine Anfrage an einen remote-server in AJAX anderen als dem aktuellen server das script/die Seite wurde geladen, es sei denn, dass der remote-server ermöglicht es über
Access-Control-Allow-Origin
header.Ich schlage vor dem servieren die Seite aus der gleichen Node.js server. Dann wird es funktionieren. Beispiel, wenn die Anfrage kommt root -
/
Seite, dann dienen dieindex.html
Datei, ansonsten, server was auch immer andere Inhalte, die Sie wollen.Zur überwindung der CORS, in Ihrem node.js Datei schreiben, die unten, basierend auf was Sie brauchen: