我正在从服务器向客户端发送一个简单的数据。
app.post('/user', function (req, res) {
var userName = "John";
res.end(JSON.stringify({"error":"", "user": userName}));
});
$.ajax({
type: "POST",
...
contentType : 'application/json',
dataType: "json"
})
.done(function(data) {
// send join message
var resData = JSON.parse(data);
alert("hello"); // this doesn't show up
});
});
});
但是在浏览器控制台中,我收到此错误 - “Uncaught SyntaxError:Unexpected token o”。
如果我对内容JSON.stringify
和JSON.parse
,则可以正常使用。
alert(JSON.parse (JSON.stringify({"error":"", "user": userName})).user);
此外,.done
在没有来自服务器的数据有效负载的情况下工作正常,即alert("hello")
有效。
所以,我猜测在res.end()
内发送数据时发生了一些可疑的事情。请帮忙。
虽然你可以告诉我如何使用res.json()以及哪一个更好。
答案 0 :(得分:0)
这里的问题是你在jQuery请求中设置了dataType: 'json'
。这会导致服务器的响应自动解析为JSON,因此它将返回对象而不是原始服务器响应。