为什么我在React应用程序中的Fetch URL不会更改?

时间:2018-11-26 13:17:16

标签: c# ajax reactjs asp.net-core-mvc fetch

我有一些奇怪的东西,我想麻烦射击。我的目标是在我的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

我不明白为什么。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这是我的愚蠢错误。由于我几个月没有使用React编写代码,所以我每次保存更改时都忘记使用npm start来构建应用程序。