Ajax иногда работает, иногда нет в Laravel - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь получить данные из моей базы данных, используя AJAX.Мой Laravel Controller возвращает строку в ответе JSON.Но мой AJAX иногда работает, иногда нет. Я получаю «внутреннюю ошибку сервера», когда Ajax не работает, я имею в виду, когда данные не загружены.Но проблема не возникает в браузере Safari.Вот мой код AJAX.

 $(function(){
     var checking_html = '<img src="img/loader.gif" />';

     $("#bond").change(function () {
         $('#load').html(checking_html);
         var x = $('#bond').val();

         $.ajax({
             type: 'POST',
             url: "{{ URL::route('bond.list') }}",
             data: {
                 '_token': $('input[name=_token]').val(),
                 'x': x
             },
             success: function(response) {
                 if(response[0]['bond_num'] == 400000){
                     response[0]['bond_num']='Premium';
                 }
                 html_output = '';
                 for(i=0; i<response.length; i++){
                     html_output += '<option value="'+response[i]['publish_date']+'">'+response[i]['publish_date']+' , '+response[0]['bond_num']+' Bond</option>';
                     if(i==0){
                         html_output += '<option value="all">ALL</option>';
                     }
                 }
                 $('#choice').empty().append(html_output);
                 $('#load').html('');
             },
             error: function (jqXHR, textStatus, errorThrown){
                 alert('Error get data from ajax');
             }
         });
     });
 });

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

так что в случае успеха console.log(response) и в консоли, пожалуйста, проверьте результат, если он появится, а также откройте раздел сети в браузере и посмотрите, сколько времени занимает запрос ajax, после этого вы поймете, в чем проблема.Спасибо

0 голосов
/ 29 мая 2018

Проблема была в токене.Я удалил часть токена из моего вызова AJAX и отключил проверку токена для маршрута.Теперь отлично работает каждый раз.

0 голосов
/ 29 мая 2018

Вам нужен JSON.parse () ваш результат:

 $.ajax({
     type: 'GET',
     url: "{{ URL::route('bond.list') }}",
     data: {
         '_token': $('input[name=_token]').val(),
         'x': x
     },
     success: function(response) {
         var response = JSON.parse(response);
         console.log(response);
     }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...