在.Net Core 2.2中使用Ajax调用处理AutoValidateAntiForgeryToken的方法如下:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
@Html.AntiForgeryToken()
方法生成AntiForgeryToken:@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "myForm" }))
{
@Html.AntiForgeryToken()
<!-- 其他表单字段 -->
<input type="submit" value="Submit" />
}
<script>
$(document).ready(function () {
$('#myForm').submit(function (e) {
e.preventDefault(); // 阻止表单默认提交行为
var token = $('input[name="__RequestVerificationToken"]').val(); // 获取AntiForgeryToken的值
$.ajax({
url: '/ControllerName/ActionName',
type: 'POST',
data: {
__RequestVerificationToken: token, // 将AntiForgeryToken添加到请求数据中
// 其他表单字段的值
},
success: function (result) {
// 处理成功响应
},
error: function (xhr, status, error) {
// 处理错误响应
}
});
});
});
</script>
[ValidateAntiForgeryToken]
特性来验证请求的合法性:[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult ActionName(YourModel model)
{
// 处理请求
return View();
}
以上步骤中,我们使用了.Net Core提供的AntiForgeryToken来防止跨站请求伪造(CSRF)攻击。通过在视图中生成和验证AntiForgeryToken,可以确保请求的合法性。在Ajax调用中,我们将AntiForgeryToken添加到请求数据中,并在控制器中使用[ValidateAntiForgeryToken]
特性进行验证。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云