При вызове действия из метода ajax выдается ошибка: отсутствует обязательное поле формы защиты от подделки «__RequestVerificationToken». - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть следующий метод ajax, который запускает метод действия из контроллера.При выполнении описанного ниже метода я вижу ошибку: Обязательное поле формы защиты от подделки "__RequestVerificationToken" отсутствует.Но в исходном представлении, которое я вижу, есть поле формы "__RequestVerificationToken", которое я передаю ему методом действия.

Test.cshtml:

<form action="javascript: void(0)" id="frmContent">
 @Html.AntiForgeryToken()
</form>

<script type="text/javascript" charset="utf8">
  var vue_data = vue_data || {};

    (function () {
            var token = $('#frmContent input[name=__RequestVerificationToken]').val();
            $.ajax({
                    url: '@(Url.Action("GetData", "Test"))',
                    type: "POST",
                    cache: false,
                    async: false,
                    headers: {
                        "__RequestVerificationToken": token
                    },
                    data: { search: $('#search').val()},
                    success: function (data) {
                        var items = jQuery.parseJSON(data);
                        vue_data.view_content = items.items;
                    }
                });
            })();

</script>

TestController.cs

[ValidateHeaderAntiForgeryToken]
public JsonResult GetData(string search)
{
}

Может кто-нибудь помочь мне исправить этовопрос

1 Ответ

0 голосов
/ 13 февраля 2019

вы также можете передать антифогергентокен в данные.Я использовал его раньше, и он работает как шарм.

 data: { "__RequestVerificationToken": token,"search": $('#search').val()}

В вашем действии actionMethod: [ValidateAntiForgeryToken] Кроме того, это не будет работать.data: {search: $ ('# search'). val ()} используйте кавычки с поиском: data: {"__RequestVerificationToken": token, "search": $ ('# search'). val ()}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...