Почему при использовании функции fetch из запроса Post отправляется запрос Get? - PullRequest
0 голосов
/ 21 мая 2019

Я использую MVC Я делаю POST запрос на результат действия в контроллере с использованием выборки javascript и его работоспособность, но как только Запрос POST выполнен, я получаю сообщение об ошибке GET reuqest!

GET http://localhost:50404/users/%40Tahboub96 404 (Not Found)

Это код JavaScript для извлечения:

const followFunc = () => {
            document.getElementById('followbtn').addEventListener('click', async () => {
                const followPost = await fetch(`/users/handlefollow/${userId}`, {
                    method: 'POST', 
                    mode: 'cors', 
                    cache: 'no-cache', 
                    credentials: 'same-origin', 
                    headers: {
                        'Content-Type': 'application/json',

                    },
                    redirect: 'follow', 
                    referrer: 'no-referrer', 
                    body: JSON.stringify(userId), 
                })
                    .then(() => {
                        document.getElementById('followbtn').textContent = "Un-Follow";
                    });

            });
        };

        followFunc();

иэто мой код результата действия:

[HttpPost]
        public ActionResult HandleFollow(string id)
        {
            //id param is the id of the follower

            //You
            var followerId = User.Identity.GetUserId();
            var follower = _context.Users.FirstOrDefault(x => x.Id == followerId);

            //Who to follow
            var following = _context.Users.FirstOrDefault(x => x.Id == id);

            //add a following to the follower
            if(follower.Following == null)
                follower.Following = 0;

            follower.Following += 1;
            //

            //add a follower to the following
            if (following.Follower == null)
                following.Follower = 0;

            following.Follower += 1;
            //

            //add the transaction to the follow table
            var followTable = new Follow();
            followTable.FollowerId = followerId;
            followTable.FollowingId = id;

            //add it to db
            _context.Follows.Add(followTable);

            //save changes to db
            _context.SaveChanges();

            return RedirectToAction("@" + following.UserName);
        }

1 Ответ

0 голосов
/ 21 мая 2019

Ваше действие MVC возвращает инструкцию по перенаправлению. Ваши опции POST включают

redirect: 'follow',

Итак, он следует инструкции по перенаправлению.

...