在MVC的基于Visual Studio OOB表单的身份验证示例中,当用户注销时使用回发,
@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" })) {
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
为什么这不是常规GET,因为没有数据被发送回服务器?
答案 0 :(得分:8)
注销操作不是幂等的,所以最好使用POST。
GET只应用于检索资源。注销是一项操作,不会返回特定资源。
GET请求也可以缓存,保留在浏览器历史记录中并可以加入书签。登出时有一些无用的功能。