我有一些奇怪的东西,我想麻烦射击。我的目标是在我的Fetch调用中加入AntiForgeryToken
。从昨天开始我一直在努力,但是我遇到了麻烦。
在我的React
应用程序中,有一个Fetch调用:
fetch('/comments/new?',
{
method: 'POST',
body: JSON.stringify({ data }), // data can be `string` or {object}!
headers: { 'Content-Type': 'application/json' },
contentType: "application/json; charset=utf-8",
credentials: 'include'
}
)
.then(res => res.json())
.then(res => {
console.log(res);
})
.catch(error => {
console.error(error);
});
我的SurveyController.cs
如下:
[Route("comments/new")]
public ActionResult AddComment(Survey survey)
{
if (survey == null)
{
return BadRequest();
}
survey.Time = DateTime.Now;
_context.Surveys.Add(survey);
_context.SaveChanges();
return Ok();
}
它有效并且在XHR日志获取调用的URL中,我有:http://localhost:58256/comments/new?Name=aaa&Change=aa&Opinion=good
但是,如果我在XHR日志获取调用中将Fetch URL更改为fetch('/comments/new/dupa?',
并将构造函数Route URl更改为[Route("comments/new/dupa")]
,则再次相同(!):http://localhost:58256/comments/new?Name=aaa&Change=aa&Opinion=good
另一个奇怪的事情是该呼叫被XHR日志识别为GET
。
我不明白为什么。感谢您的帮助。
答案 0 :(得分:0)
这是我的愚蠢错误。由于我几个月没有使用React编写代码,所以我每次保存更改时都忘记使用npm start
来构建应用程序。