在 MVC Edit 视图页面中,它会使用一个隐藏文件(名为__RequestVerificationToken
)来存储 ValidateAntiForgeryToken,您可以使用 F12 开发者工具来检查它。
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8NrAkS ... s2-m9Yw">
修改数据后,您可以使用 JQuery 获取更新后的数据,然后使用 JQuery ajax 调用带有 ValidateAntiForgeryToken 的 API 方法。您可以参考我的回复中的示例代码:
如果我们在 Startup.ConfigureServices 中自定义防伪选项,例如:自定义 RequestVerificationToken 的 Header Name。
services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN"); //configure the antiforgery service to look for the X-CSRF-TOKEN header. To prevent the cross-site request forgery.
然后,我们可以使用以下脚本:
$.ajax({
type: "POST",
url: "/Survey/Create",
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
data: { "CategoryName": $("#CategoryName").val(), "CategoryID": $("#CategoryID").val() },
success: function (response) {
alert(response);
},
failure: function (response) {
alert(response.responseText);
},
error: function (response) {
alert(response.responseText);
}
});
此外,您还可以参考ASP.NET Core 中的防止跨站点请求伪造 (XSRF/CSRF) 攻击。