我的 HTML 页面中有一个主登录页面,我在其中添加了一个脚本。
<script>
var username, password;
function doSomething() {
username = $('#username').val();
password = $('#password').val();
$.post('/login', {
user: username,
password: password
});
//$.get('/database');
}
</script>
索引页的 .js 文件中的 POST 请求如下所示:
app.post('/login', function (req, res) {
var username = req.body.user;
var password = req.body.password;
console.log("Username: " + username + ", password: " + password);
if (username === 'john' && password === 'johnspassword') {
res.redirect('/database');
} else {
// res.send('Bad user/pass');
}
res.redirect('/database');
});
虽然我有另一个 .js 文件,我在
上实现了 GET 请求 app.get('/database', function (req, res) {
res.render('database');
});
但是,当我单击按钮运行函数 doSomething()
时,它仅在 console.log 中显示我输入的用户名和密码,但不会重定向到新位置。
当我单独访问 localhost/database 时,我能够渲染我的数据库 HTML/HANDLEBARS。我如何从 POST 到达该页面
最佳答案
您需要在客户端进行重定向。
成功使用ajax后:
$.ajax({
url : '/login',
type : 'POST',
data : {
user: username,
password: password
},
success : function(data){
window.location.replace(data);
}
});
并更改服务器端的响应
app.post('/login', function (req, res) {
var username = req.body.user;
var password = req.body.password;
console.log("Username: " + username + ", password: " + password);
if (username === 'john' && password === 'johnspassword') {
res.status(200).send('/database');
} else {
// res.send('Bad user/pass');
}
res.status(200).send('/database');
});
关于javascript - 是否可以针对特定按钮单击发出 HTTP Post 和 Get 请求? [Node.js、Express[,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34186926/