ASP.NET 使用Ajax请求带有验证[ValidateAntiForgeryToken]的Controller方法
程序员文章站
2022-06-02 11:41:57
...
AJAX Posting ValidateAntiForgeryToken without Form to MVC Action Method
Controller中的代码
[HttpPost]
[ValidateAntiForgeryToken]// 对Ajax请求的方法添加验证
[UserAuthorizeAttribute]
public ActionResult SetDefault(int? id)
{
}
JS中的代码:
var datalist = { id: SysEmailKey };
if (isConfirm) {
addAntiForgeryToken(datalist);//调用方法进行设置验证参数 __RequestVerificationToken
$.ajax({
type: "post",
data: datalist, //这里不加 "{ }"
url: "@Url.Action("SetDefault", "EmailAccount")",
dataType: "json",
xhrFields: { withCredentials: true },
success: function (data) {
},
error: function (ex) {
console.log(ex);
}
});
}
function addAntiForgeryToken(data) {
if (!data) {
data = {};
}
var tokenInput = $('input[name=__RequestVerificationToken]');
if (tokenInput.length) {
data.__RequestVerificationToken = tokenInput.val();
}
return data;
};
最后在html中也要加上相关的代码:
@using (Html.BeginForm("Index", "EmailAccount", FormMethod.Get))
{
@Html.AntiForgeryToken()
}
上一篇: ASP.NET GridView的OnRowCommand事件
下一篇: 这个数字如何输出不了