这篇内容延续上一篇的部份,来加上 Antiforgery Token 的给定及验证 !
[HttpPost, Route("api/[controller]/[action]")]
[ValidateAntiForgeryToken] // 新增
public IActionResult AddOrderItem([FromForm]int index)
{
ViewData["OrderItemIndex"] = index;
return PartialView("/Views/Day16/OrderItem.cshtml", new OrderItem() );
}
此时,在 ajax 未给定 Antiforgery Token 的情况下,发送 request 会发生 http status code 400 的错误
__RequestVerificationToken
的 dom,这个 dom 存放的值,就是 Antiforgery Token// 新增
window.AntiForgeryToken = document.querySelectorAll('input[name="__RequestVerificationToken"]')[0].value;
window.AddItem = function () {
const requestBody = new URLSearchParams();
requestBody.append('index', ItemsCount);
fetch(AddItemUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'RequestVerificationToken': AntiForgeryToken, @* 新增 *@
},
body: requestBody,
})
.then(response => response.text())
.then(data => {
$('#Items').append(data);
ItemsCount++;
})
}
此时,发送 request 到後端,就会正常了 !
这篇先到这里,下一篇来看看进入轻前端 Vue 前的范例 !
<<: DAY 4 Big Data 5Vs – Volume(容量) - S3+Lake Formation
工程师太师了: 第16话 杂记: 今天终於是第三十天了, 漫长的三十天, 每天都要努力发文, 有监於...
tags: OC 30 day 延展: Extension 是一个特殊分类,所以延展也是类的一部分。...
Q1. Graph 是什麽 Graph 定义:一个 graph 由 数个点( vertex )与数个...
Linux 的 Distro 很多,今天笔记一下在 openSUSE 上启用呒虾米的纪录。 从系统设...
农场里的鸡饲料都是大把大把的撒在地上, 每只鸡都去吃那些饲料,吃完就没了, 而不像其他宠物有独立的饲...