我正在向路由器发出ajax请求,该路由器将在数据库中找到一个数据并返回到同一页面。但是,我没有获取数据库对象,而是接收在客户端控制台中打印的整个html页面,在服务器端,我得到了正确的对象。我看过其他类似的问题,但无法找到答案。我将不胜感激任何帮助。
我的路由器:
router.get('/usuario/receber', function(req, res) {
Redacao
.findOne({})
.then(doc => {console.log(doc), res.render('usuario', doc)})
.catch(err => {
console.log(err);
res.status(500).send({ message: err });
});
});
我的观点:
$(document).ready(function(){
$('#target').click(function (e) {
e.preventDefault();
function successCallback(responseObj){
console.log(responseObj);
};
$.ajax({
url: "/users/usuario/receber",
type: "get",
success: function(response){
successCallback(response);
}
});
});
});
答案 0 :(得分:0)
这是因为您使用res.render
发送响应,该响应将呈现的HTML字符串返回给客户端。如果您希望使用JSON字符串返回,则可以使用res.json
router.get('/usuario/receber', function(req, res) {
Redacao
.findOne({})
.then(doc => {console.log(doc), res.json(doc)})
.catch(err => {
console.log(err);
res.status(500).send({ message: err });
});
});