与 Day21 重点差异的部份:
Controller 内 Action:
加上 ValidateAntiForgeryToken Attribute
// ...
[HttpPost, Route("api/[controller]/[action]")]
[ValidateAntiForgeryToken]
public IActionResult PostCase01([FromBody]ViewModel vm)
{
return Ok(vm);
}
// ...
View :
新增 Partial View _Antiforgery.cshtml
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@functions{
private string GetAntiXsrfRequestToken()
{
return Xsrf.GetAndStoreTokens(Context).RequestToken;
}
}
<script>
window.Antiforgery = {};
Antiforgery.RequestVerificationToken = '@(GetAntiXsrfRequestToken())';
</script>
View 加上引用上述的 Partial View
...
@section Scripts
{
<partial name="_Antiforgery"/>
<script>
const app = createApp({
setup(){
...
fetch 加上 Header RequestVerificationToken
// ...
fetch(post_url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'RequestVerificationToken' : Antiforgery.RequestVerificationToken
},
body: JSON.stringify(vue_model),
})
// ...
参考资料:Prevent Cross-Site Request Forgery (XSRF/CSRF) attacks in ASP.NET Core
下一篇来看看把 Day17 范例改用 轻前端 Vue !
>>: Day07 - 在 Next.js 中使用 pre-rendering (getStaticProps) — Part 1
今天是30天程序语言研究的第二十三天,由於资料库开发的部分我是负责前端所以想说顺便多练习一下其他开发...
大家好,我是毛毛。ヾ(´∀ ˋ)ノ 废话不多说开始今天的解题Day~ 9. Palindrome N...
用v-for把阵列转成元素 一开始我们先把items的资料容给见出来 接下来呢我们用v-for=&q...
呼~ 等了好久,新玩具终於到了 凭藉着过人的智慧 我组装起来了,也帮镜头多了一个支架 然後就上电开机...
GOOGLE公云使用案例 大纲 Introduction(Global view) How to c...