我的jQuery,AJAX调用在从PHP函数有效返回格式良好的JSON数据时得到一个null响应


My jQuery, AJAX call is getting a null response on a valid return of well-formatted JSON data from a PHP function

我已经检查了PHP函数的日志,并且我已经正确格式化了从该方法返回的JSON数据。AJAX正在调用它并返回,为响应变量获取一个null值。有什么想法吗?这是AJAX代码:

$.ajax({
       type: "POST",
       url: "index.php/controllerFile/get_standby",
       data: 'id=' + $(this).attr('id'),
       success: function(response){  

             console.log('response is: ' + response); //It is null here
         $.colorbox({'href':'index.php/config/view/standby' + response.urlData,'width':1000,'title':'Standby People'});         
       },
       dataType:'json'
     });

以下是PHP函数:

function get_standby()
    {
        $id = $this->input->post('id');
        $this->load->model('teetime');
        $url['urlData'] = ($this->teetime->get_standby_by_id($id));
        $printing = json_encode($url);
        log_message('error', 'JSON ' . $printing);
        return $printing;
    }

尝试在PHP中使用echo而不是return。

echo $printing;

我建议在Chrome中打开开发者工具(查看>开发者>开发者工具)并选择网络选项卡。当您提出AJAX发布请求时,它应该在那里添加一个条目("路径"列应该是"index.php/controllerFile/get_standby","方法"列应该有"post")。单击请求所在的行,然后检查"响应"选项卡以确保您的JSON存在。

如果响应为空,那么问题出在PHP代码上(您可能没有将该函数返回的JSON打印到页面上)。否则,您的JavaScript就会出现问题。