【发布时间】:2012-07-19 04:42:23
【问题描述】:
由于某种原因,我无法在登录完成后重定向到 /blog。在我的登录控制器中,我有以下内容。
module.exports = {
post: function(req, res) {
var login = req.body['login'];
if (login && req.body['login']['password'] == "password") {
console.log('Granted access');
res.send({redirect: '/blog'});
}
else {
console.log('wrong password');
res.redirect('back');
}
}
};
jquery ajax
$(document).ready ->
$('#login-button').click () ->
$.ajax
url: '/login'
type: 'POST'
data: $('#Password').serialize()
dataType: 'json'
success: (data, textStatus, jqXHR) ->
if typeof data.redirect == 'string'
window.location = data.redirect
更新到工作代码
【问题讨论】:
-
你能告诉我们它到底在做什么吗?你得到什么响应代码?一方面,您需要在初始应用加载期间设置中间件 (
app.use(express.bodyParser())),而不是在每个请求过程中。 -
我更新了它。我根本没有得到任何响应,并且我的 app.use(express.bodyParser()) 在 server.js 中的应用加载中
-
您正在生成一个 200 响应代码,因此您必须得到一个响应,尽管可能是一个空的正文。您确定正在调用登录控制器的
post函数吗?你看到那些console.log语句的输出了吗?鉴于您的 if/else,无论如何您都在调用res.redirect,因此您应该得到一个 301 响应代码。这让我相信它是一个完全不同的路由处理程序来响应请求。 -
是的,这是之前显示的 console.log 的结果。以上更新
-
现在我收到 304 响应代码