ajax Опубликовать запрос с помощью антифогергена на .net core 2.2 - PullRequest
0 голосов
/ 08 июля 2019

У меня есть веб-проект, использующий ASP .Net Core 2.2, в котором есть проверка токенов на фальсификацию. После этого все мои почтовые запросы AJAX не работают. Есть ли способ выполнить этот AJAX-запрос с минимальными изменениями?

$.ajax({
  type: 'POST',
  url: 'Register/RegisterNewUser',
  data: {
    Name: "John",
    Surname: "Doe",
    Email: "some@mail.com"
  },
  success: success,
  error: function(xhr, textStatus, errorThrown) {
    alert(errorThrown);
  }
});

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Решение:

@using Microsoft.AspNetCore.Antiforgery
@inject IAntiforgery Antiforgery
<!---Some content ---->## Heading ##


<script>
$.ajax({
type: 'POST', 
beforeSend: function (request) { request.setRequestHeader("RequestVerificationToken",@Antiforgery.GetTokens(Context).RequestToken);},
url: 'Register/RegisterNewUser',
data: { Name: "John", Surname:"Doe",Email:"some@mail.com" },
success: success,
error: function (xhr, textStatus, errorThrown) { alert(errorThrown);}
});
</script>
0 голосов
/ 08 июля 2019

Вы можете опубликовать проверку анти-подделки с заголовком вашего запроса в .net core 2.2

     $.ajax({
                type: 'POST',
                url: 'Register/RegisterNewUser',
                dataType: 'json',
                data: { Name: "John", Surname: "Doe", Email: "some@mail.com" },                    
                headers: {
                    RequestVerificationToken:
                        $('input:hidden[name="__RequestVerificationToken"]').val()
                },
                success: success,
                error: function (xhr, textStatus, errorThrown)
                {
                    alert(errorThrown);
                }
            });
...