C# 请求jquery Post使用NetCore2.1身份验证发出注销

C# 请求jquery Post使用NetCore2.1身份验证发出注销,c#,jquery,asp.net-core,logout,C#,Jquery,Asp.net Core,Logout,我有一个新的小型应用程序,它使用Net Core 2.1身份验证,并在razor视图中使用预定义行运行,用于请求使用表单注销: <form asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Page("/Index", new { area = "" })" method="post" id="logoutForm"> <li><button type="subm

我有一个新的小型应用程序,它使用Net Core 2.1身份验证,并在razor视图中使用预定义行运行,用于请求使用表单注销:

<form asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Page("/Index", new { area = "" })" method="post" id="logoutForm">
    <li><button type="submit" class="btn btn-link navbar-btn navbar-link">Logout</button></li>
</form>

  • 注销
  • 我正试图用Jquery重写这篇文章:

    <li><a id="LogoutBtn">Logout</a></li>
    
    
    
    $("#LogoutBtn").click(function () {
        $.post("/Identity/Account/Logout?returnUrl=Test", function (data, status) {
            alert(status);
        });
    });
    
  • 上面的两段代码不是在做同样的事情吗


    最上面的那个正在工作

    我不太熟悉asp.net核心标记帮助程序,但纯粹从观察来看,jQuery实现并没有做任何事情来复制
    asp route returnUrl
    属性。找出(通过检查生成的HTML)表单上呈现的内容(例如属性、新隐藏字段或它创建的任何内容)以及对发送的HTTP请求的影响,然后在jQuery版本中重现这些内容。因为您得到了一个“错误的请求”响应,我希望这意味着它会导致发送一个参数,而jQueryHi并没有发送这个参数!谢谢你的回复。根据,标记助手应该生成一个带有action属性的表单元素,因此我将url更新为“/Identity/Account/Logout?returnUrl=Test”,但这并没有解决问题。下一步将是确定我使用的接收方法,但这似乎说起来容易做起来难。我从来没有想出这个方法。相反,我最终保留了表单,但删除了提交按钮,因为它不适合设计。然后使用一些JS,我可以手动控制注销表单:var form=document.getElementById(“logoutForm”);document.getElementById(“LogoutBtn”).addEventListener(“单击”,函数(){form.submit();});