我有一个简单的 Ajax 请求,如下所示:
$.ajax({
type: "POST",
url: "/admin.html",
data: dataString,
success: function(data) {
if(data.error) {
$('#alertt').text(data.error);
$('#alertt').show();
$('#alertt').fadeIn().delay(2000).fadeOut('slow');
} else if (data.success) {
var lati = $('#route_latitude').val();
var longi = $('#route_longitude').val();
increment();
setMarker(lati, longi);
$('#alertt').text(data.success);
$('#alertt').show();
$('#alertt').fadeIn().delay(2000).fadeOut('slow');
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus + " " + errorThrown)
}
})
问题是,如果用户在网页上登录,那么它会(pending)
等待大约 5 分钟然后500
出现错误,我不确定这是为什么,我正在使用Express v3
,这基本上是请求的方式:
var isAdmin = function(req, res, next) {
helper.isAdmin(req, res, next);
}
app.post('/admin.html', isAdmin, admin.new);
exports.isAdmin = function(req, res, next) {
db.users.find({'rememberToken': req.cookies.rememberToken}, function(err, foundUser) {
if (err) { console.log('We have an error' + err) } else {
if (foundUser.length === 0) {
console.log('Somebody attempted to view the Admin page without an account.')
res.render('index', { 'title': 'Home Page'})
} else if (foundUser[0].admin === 0) {
console.log('A non-admin user account tried to log into the Admin page: ' + foundUser[0].email);
res.render('index', { 'title': 'Home Page' });
} else if (foundUser[0].rememberToken === req.cookies.rememberToken) {
console.log('Admin viewing Admin page.');
next();
}
}
})
}
我真的看不出有什么问题,但由于某种原因,它只是存在,(pending)
但如果我在没有设置 cookie 的情况下未登录,(isAdmin function
从 中删除post
)它可以工作。任何帮助都会很棒,这让我发疯了。
如果您对登录的处理方式感到好奇:https ://gist.github.com/anonymous/f458783ffdc45255f85d/raw/dd59d045b7fa76abc2dca458eea16702477c36d1/gistfile1.js
这实际上在 localhost 上完全按预期工作,但是当我将它推送到 Nodejitsu 时,它不起作用并且发生了这个问题。