首页 > 解决方案 > 如何使用链接调用 post 函数

问题描述

我有一个导航栏,我还想有一个标签,我可以在其中调用我的 post 函数。问题是我不知道如何用链接调用它。如果您查看我的导航栏代码,您会看到我正在处理链接。

这是我的帖子功能

app.post('/logout', (req, res) => {
    if (req.session) {
        try{
            console.log(`${req.session.userdata.name} logged out at ${getTime()} at the devide ${req.ip.slice(7)} ${req.ips}`)
        } catch(error){
            console.log(`"Err" logged out at ${getTime()} at the devide ${req.ip.slice(7)} ${req.ips}`);
        }
        req.session.destroy(function(err) {
            if(err) {
                return next(err);
            } else {
                return res.redirect('/');
            };
        });
    };
});

这是我的导航栏代码

<div class="navbar">
    <a class="active" href="/user/:id/home">Home</a>
    <a href="/">Login</a>
    <a href="/info">Info</a>
</div>

我也试过这个

<form action="/logout" method="post">
  <a href="#" id = "logout" title="save logout"><i class="fa fa-fw fa-power-off"> </i>Logout</a>
</form>

标签: javascripthtmlexpress

解决方案


您应该收听click链接的事件,以及submit使用 javascript 的表单。

这里我使用的是 JQuery,

$('#logout').click(function(e){

  e.preventDefault();
  $('#logout_form').submit();

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form action="/logout" method="post" id='logout_form'>
  <a href="#" id="logout" title="save logout">
     <i class="fa fa-fw fa-power-off"> </i>Logout
  </a>
</form>


推荐阅读