Вот код Ajax:
var token = $('form input[name="__RequestVerificationToken"]').val();
var data = {};
data.Type = $(e.target).attr('type');
data.__RequestVerificationToken = token;
url = '@Url.Action("MyAction", "MyController")';
$.ajax({
type: 'POST',
url: url,
data: data,
dataType: "html",
success: function (result) {
//do some stuff
},
error: function (err) {
//display error
}
})
В инструментах разработчика IE 11 во время начальной загрузки страницы (GET) я вижу, что устанавливается файл cookie RequestVerificationToken. Также заполняется элемент формы для RequestVerificationToken. Однако во время Ajax POST файл cookie не является частью запроса.
Chrome отлично работает в обоих местах, и во время Ajax POST файл cookie присутствует. IE 11 работает локально (localhost), но эта проблема возникает, когда IE 11 обращается к приложению на сервере, и возвращается эта ошибка:
Требуемый файл cookie для защиты от подделки "__RequestVerificationToken_L1JldkNvbm5lY3Q1" отсутствует.
По какой-то причине IE 11 не включает файл cookie в Ajax POST, когда приложение находится на сервере. Я вижу, что он отсутствует на вкладке «Сеть» инструментов разработчика IE. На вкладке «Сеть» инструментов разработчика Chrome присутствует файл cookie и работает POSt.
ASP.NET MVC 5