#
全局(每个页面)获取Forgery Token就是文档中提到的注入Microsoft.AspNetCore.Antiforgery.IAntiforgery 并调用GetAndStoreTokens 方法,但是由于需要达到全局获取,我需要把这个方法的调用写到布局页,如默认MVC模版的Views/Shared/_Layout.cshtml
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@functions{
public string GetAntiXsrfRequestToken()
{
return Xsrf.GetAndStoreTokens(Context).RequestToken;
}
}
<script>
var csrfToken = '@GetAntiXsrfRequestToken()';
</script>
#
JQuery.ajax 里全局设置头部的方法是$.ajaxSetup ,按照文档,把所需的头部字段RequestVerificationToken 配置上上面获取到的令牌变量csrfToken ,即可实现在每个Ajax请求都带有Forgery Token。
(function (window, document, $) {
$.ajaxSetup({
headers: {
'RequestVerificationToken': csrfToken
}
});
})(window, document, jQuery);
|
请发表评论