今天在测试时发生了这样的错误:
后端代码为:
const http = require("http");
const url = require("url");
http.createServer(function (req, res) {
var pathname = url.parse(req.url).pathname;
// 允许跨域
res.setHeader("Access-Control-Allow-Origin", "*");
switch (pathname) {
case '/user':
let obj = { "name": "li", "age": 17 };
res.write(JSON.stringify(obj));
res.end();
break;
case "/info":
let info = {
"arr": [
{ "name": "po", "age": 15 },
{ "name": "lo", "age": 14 },
{ "name": "pnm", "age": 13 },
{ "name": "gb", "age": 17 },
{ "name": "ii", "age": 18 },
]
}
res.write(JSON.stringify(info));
default:
res.end("404");
break;
}
}).listen(3000);
报错原因:
没有 res.end()
和break;
,响应未结束,继续响应将res.end("404")
中的404一同返回到客户端,导致客户端无法识别json对象。
解决方法:在res.write()
后面加上 res.end()
和break;