AJAX Проводка ValidateAntiForgeryToken без формы в метод действия MVC

я смотрел на примеры того, как сделать это на SO и, насколько я могу судить, яЯ попробовал все примеры, которые могу найти, но безуспешно. Я'мы пытались изменить некоторые реализации в моем сценарии, но пока это тоже не удалось.

У меня есть это на моей странице в _layout.cshtml, поэтому у меня всегда есть токен:

 @Html.AntiForgeryToken()

У меня также есть этот метод в моем файле утилит JavaScript:

AddAntiForgeryToken = function (data) {
    data.__RequestVerificationToken = $('#__AjaxAntiForgeryForm input[name=__RequestVerificationToken]').val();
    return data;
};

Это все работает, как ожидалось, и я получаю жетон защиты от подделки. Мой фактический почтовый код:

myPage.saveData = function() {
    var saveUrl = '/exercises/PostData';

    var myData = JSON.stringify(myPage.contextsArrays);

    $.ajax({
        type: 'POST',
        async: false,
        url: saveUrl,
        data: AddAntiForgeryToken({ myResults: myData }),
        success: function () {
            alert('saved');
        },
        dataType: 'json',
        contentType: "application/json; charset=utf-8"
    });
};

Мой метод действия выглядит так: я

    [HttpPost, ValidateAntiForgeryToken, JsonExceptionFilter]
    public JsonResult PostData(List myResults)
    {
        return Json(_apiClient.SubmitResults(myResults));
    }

я тестировал это с различными реализациями, которые яя пытался, и ответ всегда: я

{"errorMessage":"The required anti-forgery form field \"__RequestVerificationToken\" is not present."}

я не публикую формуэто просто массив данных, но проверка данных, которые действительно публикуются, Json не делаетвыглядит неправильно (этовсе закодировано), но имя параметра __RequestVerificationToken есть, и значение токена также присутствует.

Я очень смущен всем этим в данный момент и не могу найти правильный способ отправить токен, чтобы мое MVC-действие вызывалось. Если я удалюValidateAntiForgeryToken приписывать и иметьJSON.stringify(myPage.contextsArrays); В качестве данных JSON выглядит правильно (без кодировки), и он отображается нормально.

Как правильно выложить этот токен без формы?

Ответы на вопрос(3)

Ваш ответ на вопрос