关于razor 异步调用的一些新鲜点,记录

很久没有写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);

}
});

 

posted on 2023-05-18 17:15  南门二的灰  阅读(122)  评论(0)    收藏  举报