Ajax请求打印整个html页面(ExpressJS)

时间:2017-08-24 22:09:47

标签: jquery node.js ajax mongodb express

我正在向路由器发出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);
            }
        });
    });
});

1 个答案:

答案 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 });
        });
});