很久没有写razor了,今天在做一个小工具的时候,通过查资料等,学习了新东西。
关于razor 通过js异步提交的问题。(不是访问特定的webapi)
1.razro自带防 XSRF 攻击,因而,调用后台的 OnGet或者Onpost方法的时候,都会返回400错误。
第一,razor页面,带上 @Html.AntiForgeryToken()
第二,在startup中,添加上
public void ConfigureServices(IServiceCollection services)
{
services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");
}
"XSRF-TOKEN" 是自己取得名字,这个无所谓。
第三,在 js ajax的时候,添加上对应的header。 整体,如下
$.ajax({
type: "POST",
url: "/login?handler=LoginIn", //这里特定要处理一下,具体 去看 razor的特定语法 handler
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
data: { UserName: $("#username").val(), PassWord: $("#password").val() },
success: function (response) {
console.log(response);
},
failure: function (response) {
alert(response);
}
});
标签:function,razor,调用,val,异步,XSRF,TOKEN,response From: https://www.cnblogs.com/zytfuture/p/17412559.html