我创建了我的第一个节点js应用程序:一个简单的网络服务器。 这是代码:
// Load the http module to create an http server.
var http = require('http');
// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("<a href=\"http://www.tagesschau.de/\">ARD Tagesschau</a>\n");
});
// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(8000);
// Put a friendly message on the terminal
console.log("Server running at http://127.0.0.1:8000/");
当我通过浏览器连接到服务器时,我将代码中指定的完整字符串作为网页。
浏览器不应该解释该HTML代码并显示链接吗?为什么我将完整的HTML代码显示为纯文本?
答案 0 :(得分:4)
您已明确表示您要返回纯文本,而不是HTML。因此,浏览器将其视为纯文本。
如果您希望将HTML视为HTML,则说 HTML:
{"Content-Type": "text/html"}
(虽然您应该发送回HTML文档而不是HTML片段)。
答案 1 :(得分:2)
以下代码对我有用:
var http = require('http');
// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/html"});
response.end("<a href=\"http://www.tagesschau.de/\">ARD Tagesschau</a>\n");
});
// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(8000);
// Put a friendly message on the terminal
console.log("Server running at http://127.0.0.1:8000/");
您需要设置标题。有关详细信息,请查看Node API docs here.
检查您的firebug或dev工具的不同,以了解浏览器如何根据标题Content-Type进行不同的解释。