Я пытаюсь передать маркер защиты от подделки внутри каждого ajax вызова для защиты CSRF. проблема в том, что у меня есть два метода POST ajax в одном представлении, и один из них проходит, а другой выдает ошибку Обязательное поле формы защиты от подделки "__RequestVerificationToken" отсутствует. хотя я передаю Это. Что делать, чтобы я мог передавать токен каждому ajax? Есть ли лучший подход?
$(document).ready(function () {
//toastr.success('Success messages');
var token = $("[name='__RequestVerificationToken']").val();
function RecSLAData() {
SLAData();
var account = $('#Account_ID').val();
//***Empty LOB for another selection***//
$('#Duration').children().remove();
$.ajax({
type: 'POST',
url: '/Add_Request/GetRecSLA/',
data: {
__RequestVerificationToken: token,
acc: account,
},
success: function (result) {
//***loop on results and add to LOB***//
$.each(result, function (k, SubAccounts) {
$("#Duration").append('<option value="' + SubAccounts.Value + '">' + SubAccounts.Text + '</option>');
//$('<option>').val(v.Sub_Account_ID).text(v.Sub_Account_Name).appendTo('#LOB');
});
}
});
};
$('#Account_ID').on('change', function () {
var account = $('#Account_ID').val();
var Emp = $('#Employee_no').val();
var Operation_Date = $('#Operation_Date').val();
// $('#LOB').children('option:not(:first)').remove();
$('#LOB').children().remove();
$.ajax({
type: 'POST',
url: '/Add_Request/GetData/',
data: {
__RequestVerificationToken: token,
acc: account,
},
success: function (result) {
$.each(result, function (k, SubAccounts) {
$("#LOB").append('<option value="' + SubAccounts.Value + '">' + SubAccounts.Text + '</option>');
});
}
});
Я добавил @ html .anitforgerytoken () в форму, которую я отправляю. Также добавлено [ValidateAntiForgery] над каждым методом записи, в который я отправляю данные в контроллер. решения, которые я попробовал: защита от подделки ajax
Я застрял здесь. Я очень ценю вашу помощь.