考虑一个以电子邮件为输入的简单表单。如果身份验证失败,提交按钮会调用引导模式。如果成功,它会重定向到下一个 View 。
当 bootstrap modal 出现时,浏览器一直在加载页面,等待响应。
我在服务器端使用此代码:
app.post('/', (req, res) => {
Users.findOne({
email: req.body.email
})
.then(user => {
if (user) {
obj = req.body.email
res.redirect('/survey')
}
})
})
我尝试添加
else
未找到用户时的声明:...
else {
console.log('User not found')
return
}
我不想重定向到同一页面,因为模式不起作用。
有没有
res
方法来实现这个?
最佳答案
正确的解决方案是使用 ajax 提交表单数据和处理响应
根据响应成功/失败,您可以重定向用户或从客户端显示错误模式
如果您仍然想在没有 ajax 提交表单的情况下这样做,您可以通过添加查询字符串将用户重定向到相同的 url
res.redirect('/same-path?error=user_not_found')
并检查客户端javascript中页面加载时的查询参数
$(document).ready ( function(){
var url = window.location.search;
var queryStr = url.split("?")[1];
if(queryStr) {
let hash = queryStr.split('&);
for (var i = 0; i < hash.length; i++) {
params=hash[i].split("=");
if(params[0] == 'error' && params[1] == 'user_not_found') {
// SHOW YOUR MODAL HERE
}
}
}
});
关于javascript - 如何使用快速响应保持在同一页面而不重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48101986/