如何编写没有表单标签但带有链接标签的注销POST请求?

问题描述 投票:0回答:1

在我的视图文件中:

<a href="/logout" role="button" class="btn btn-lg btn-primary left-button">Logout</a>

在我的 app.js 文件中:

app.post('/logout', function(req, res, next){
  req.logout(function(err) {
    if (err) { return next(err); }
    res.redirect('/');
  });
});

一个有用的建议是使用表单标签,但是如何使用链接标签来完成呢?

javascript node.js express passport.js
1个回答
1
投票

如果在任何情况下您想使用 POST 请求,您可以使用 AJAX 请求来完成。删除链接并添加

onclick
操作。这样,当您单击“注销”按钮时,您将调用
logout
函数

<a onclick="logout()" role="button" class="btn btn-lg btn-primary left-button">Logout</a>

并创建注销函数来执行 POST 请求

<script>
const logout = () => {
    fetch('/logout', {method: 'POST'})
    .then((result) => {
        if (result.status === 200) {
            // successful logout, you can go to login page
            window.location = '/login'
        } else {
            console.error('Server error, logout failed')
        }
    })
    .catch((err) => console.error(err))
}
</script>
© www.soinside.com 2019 - 2024. All rights reserved.