快速POST路由不能渲染页面

我试图显示一个页面使用邮政路线,但迄今没有运气。 该路线是从一个angular度控制器调用的。 POST路由被正确调用 – 我在节点控制台POST /search 200 673ms得到这个 – 但是页面不显示。 如果我直接从浏览器调用路由(即input地址),它工作正常。 任何帮助,将不胜感激。

我发现了一个类似的post ,但发布的解决scheme不适合我。

这是我的代码:
angular度控制器

 function SearchController($scope, $http){ $scope.product = {...}; $scope.search = function(form) { $http.post('/search', { product : $scope.product }); }; } 

路线定义

  var products = require('../app/controllers/products') app.post('/search', auth.requiresLogin, products.results) 

路由控制器

 exports.results = function (req, res) { // build query and fields var Product.find(query, fields, function (err, docs) { res.render('products/results', { title: 'Search Results', user: req.user ? JSON.stringify(req.user) : "null", searchResults: docs ? docs : "null" }) }); } 

我使用Express 3.3.3,Node 0.10.9和Angular 1.0.3

如果您尝试通过您的$ http调用呈现快速页面,则它将不起作用。 你只能通过Ajax请求数据,而不是页面。

如果您需要redirect到页面,请在ajaxcallback中使用$ window服务。

 $window.location="/search"; 

如果您的快递控制器呈现json,则应该没有问题。 但既然你使用的方法res.render我明白了,情况并非如此。