javascript - 是否可以针对特定按钮单击发出 HTTP Post 和 Get 请求? [Node.js、Express[

标签 javascript node.js post express get

我的 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/

相关文章:

带有转义斜杠的 JavaScript 正则表达式不会替换

javascript - 清除所有挂起的 $http 请求并在 angularjs 中重新加载页面

node.js - 在 express js 路由中调用异步函数的正确方法

node.js - Firmata、Arduino和Node js之间的关系

jquery - 结合 JQuery 验证和 ajax post

rest - 无法读取 json 正文

javascript - DurandalJs : A generic solution to put focus to the first input element on the composed view

javascript - 将多个饼图链接到 dc.js 中的单个图例

node.js - Express 中中间件测试的 stub 请求\响应

php - 修改 PHP 发布数据