2017-08-24 62 views
0

我正在向路由器发出ajax请求,该路由器会在数据库中查找数据并返回到同一页面。但不是获取数据库对象,我正在接收打印在客户端的控制台中的整个html页面,在服务器端我得到正确的对象。我看过其他类似的问题,但找不到答案。我将不胜感激任何帮助。Ajax请求打印整个html页面(ExpressJS)

我的路由器:

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: "https://stackoverflow.com/users/usuario/receber", 
      type: "get", 
      success: function(response){ 
       successCallback(response); 
      } 
     }); 
    }); 
}); 

回答

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 }); 
     }); 
}); 
+0

它的工作,谢谢! –