Использование Ajax в Laravel и предоставление мне неизвестного статуса.Зачем? - PullRequest
0 голосов
/ 04 июня 2019

В моем приложении я использую Ajax-запрос, но он дает мне jquery-3.3.1.js: 9600 POST http://localhost:8000/get_types_ajax

gettin 419 (неизвестный статус)

Мой javascript:

 $(document).ready(function() {

    var ckbox = $("input[name='particulars']");
    var chkId = '';
    $("input[name='particulars']").on('change', function() {

      if (ckbox.is(':checked')) {
          values = [];
          names = [];
          $("input[name='particulars']:checked").each ( function() {
              amount = $(this).val().split(",");
              console.log("amount",amount);
              values.push(amount[0]);
              names.push(amount[1]);
          });//checked
         total_value = 0;

         values.forEach(function(value) {
            value = Number(value);
            total_value = total_value + value;
            document.getElementById('total').innerHTML = total_value;
        });//foreach
     }//if     
    else {
        total_value = 0;
        document.getElementById('total').innerHTML = total_value;
    }

    $.ajax({    url:"{{url('/get_types_ajax')}}",
                type: 'POST',
                data: {message:names},
                success: function (data) 
                { 
                  console.log(data);
                } 
                }); 
        });//onchange
 });//ready

Мой web.php:

 Route::post('/get_types_ajax', 'DevkrutyaController@get_types');

Ответы [ 3 ]

1 голос
/ 04 июня 2019

я вижу. Вы не передаете CSRF_TOKEN WITH Post Request, если вы используете метод post, тогда вы должны передать CSRF_TOKEN с этим другим способом, который вы можете игнорировать (пропустить) некоторый URL в промежуточном программном обеспечении токена VerifyCSRF

 protected $except = [
        'stripe/*',
 ];

в противном случае добавьте эту строку в ваш js-файл, она автоматически отправит токен csrf

 $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

, для получения более подробной информации прочитайте статью

1 голос
/ 04 июня 2019

Laravel использует токен CSRF для защиты вашего приложения от атак подделки межсайтовых запросов (CSRF). Вам нужно будет передать токен CSRF в свой ajax.

В шапке

<meta name="csrf-token" content="{{ csrf_token() }}" />

В сценарии

<script type="text/javascript">
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
</script>
1 голос
/ 04 июня 2019

Ошибка 419, которую вы получаете, связана с отсутствующим токеном CSRF в вашем запросе ajax.Для передачи токена csrf вы можете использовать метод установки ajax из jquery

 $.ajaxSetup({
        headers: {
        'X-CSRF-TOKEN': '{{ csrf_token() }}'
        }
    });
$.ajax({
            url:"{{url('/get_types_ajax')}}",
            type: 'POST',
            data: {message:names},
            success: function (data) 
            { 
              console.log(data);
            } 
            }); 
    });//onchange

});//ready

Для получения дополнительной информации https://laravel.com/docs/master/csrf#csrf-x-csrf-token

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