C# 请求jquery Post使用NetCore2.1身份验证发出注销
我有一个新的小型应用程序,它使用Net Core 2.1身份验证,并在razor视图中使用预定义行运行,用于请求使用表单注销: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
<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();});