Node.js启动HTTP服务后访问localhost:3000无内容,原因是什么?
问题修复:Node.js HTTP服务无响应/内容不显示
你的代码里有两个关键错误导致页面无法正常显示内容:
- Content-Type 头拼写错误:你把正确的
text/html写成了test/html,浏览器无法识别这个无效的内容类型,因此无法正确解析返回的内容。 - HTML标签使用了HTML实体而非直接标签:代码里的
<和>是HTML转义实体,在JavaScript字符串中应该直接使用<和>,否则浏览器会把这些实体当作纯文本处理,而不是解析为HTML标签。
修正后的代码如下:
const http = require('http'); const server = http.createServer((req, res) => { console.log(req.url, req.method, req.headers); // process.exit(); // 保持注释状态,否则服务处理完第一个请求就会终止 res.setHeader('Content-Type', 'text/html'); // 修正内容类型拼写 res.write('<html>'); // 直接使用HTML标签 res.write('<head><title>My first page</title></head>'); res.write('<body><h1>Hello from my Node.js Server</h1></body>'); res.write('</html>'); res.end(); }); server.listen(3000);
修复后重启服务,访问 localhost:3000 就能看到预期的页面内容了。另外注意不要启用 process.exit(),否则服务会在处理第一个请求后直接终止,后续请求无法得到响应。
内容的提问来源于stack exchange,提问作者Muhammad Wajeeh
相关产品推荐
相关产品推荐

