Ajax有时会起作用,有时候不会在Laravel中

时间:2018-05-29 08:50:11

标签: javascript php jquery ajax laravel

我正在尝试使用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 :(得分:0)

你需要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);
     }
});

答案 1 :(得分:0)

所以在成功函数console.log(response)和控制台上请检查结果是否来,并在浏览器上打开网络部分,看看ajax请求的时间,这样做后你会明白问题出在哪里。谢谢

答案 2 :(得分:0)

问题是令牌。我从AJAX调用中删除了令牌部分,并禁用了路由的令牌验证。现在每次都很完美。