无法加载资源:服务器响应状态为500,Codeigniter项目

时间:2019-03-19 11:28:47

标签: php json ajax codeigniter

我正在尝试使用ajax发送呼叫,但在Chrome中却出现错误,但在firefox中没有错误。但是仍然不能调用该方法。 此追加显示7个div,但是某些div被加载,但是某些div继续加载,控制台显示错误500

    //get recent posts via ajax controller class
public function get_recent_articles($cr_post_id,$category,$limit,$offset)
{
    $recent_post=$this->Post_model->get_recent_articles($cr_post_id,$category,$limit,$offset);
    return $this->output
    ->set_content_type('application/json')
    ->set_status_header(200)
    ->set_output(json_encode($recent_post));
}

这是视图部分

$('#recent_post_cat_2').show(); 
$('#recent_post_cat_2').append('<div id="recent_post_cat_2_preloader" class="col-md-12 col-sm-12 text-center" style="vertical-align:middle;padding:15px 0px;"><i class="fa fa-spinner fa-spin" style="font-size:24px"></i></div>');

这是Ajax函数

/* START - get_recent_articles*/
function get_recent_articles(category,div_id,limit)
{       
    //prepare url   
    url="<?php echo "/./home-recent-articles-filter-cat/";?>"+category+"/"+limit+"/";           $.ajax({
    url: url,
    type: 'GET',
    dataType: "json",
    crossDomain: true,      
    success: function(data){
            // console.log(JSON.stringify(data));               
            if(data.status=="success")
            {                   

                prepared_posts_data=prepare_cards(category,data.data,3);
                $(div_id+'_preloader').remove();
                $(div_id).append(prepared_posts_data);
                $(div_id).show();                           

                var myLazyLoad = new LazyLoad({
                    threshold: 50,
                    callback_load: function(e) {
                      // console.log($(e).attr("data-original") + " loaded" );
                    }
                }); 
            }
            else{
                 console.log("no posts available");                  
            }
        }
});
}

1 个答案:

答案 0 :(得分:0)

我怀疑这行

url="<?php echo "/./home-recent-articles-filter-cat/";?>"+category+"/"+limit+"/";

Codeigniter URL看起来不是这样。它至少包含3个参数(除非有index函数)

  1. 基本网址
  2. 控制器名称
  3. 方法名称

所以应该是这样的

url = <?= base_url(); ?>.'controller_name/get_recent_articles'

确保已加载

  1. URL助手
  2. short_tag=On在PHP.ini中

检查这些

  1. Set up the base URL in codeigniter