JSON在响应jQuery$.ajax时返回null


JSON returning null on response with jQuery $.ajax

我试图在ajax帖子上获得响应,但总是返回NULL。

我想我已经尽力了。。。但希望有人能解决这个问题。非常感谢。如果需要更多信息,请告诉我。

注意:PHP函数没有向JQuery ajax方法返回任何数据-此链接对我没有帮助

这里是jquery代码:

var post_id=3;
        $.ajax({
            type: "POST",
            url: "profile/ajax_get_new_posts",
            data: { post_id : post_id },
            dataType: 'json',
            success: function(data){
                console.log(data);
                var current_content = $("ol#posts_container").html();
                $("ol#posts_container").html(data.content + current_content);
            }

        });

profile/ajax_get_new_posts(它是.php)

function ajax_get_new_posts(){
        header('Content-Type: application/json');
            $post_id=$this->input->post('post_id');
            $chat_messages_html='testing';
            $result = array('status' => 'ok', 'content' => $chat_messages_html);
            $result=json_encode($result);
            return ($result);
            exit();
        }

如果我尝试使用var_dump($result);die();给我正确的结果:

string(38) "{"status":"ok","content":"samoletite"}"

在响应标头上给我内容长度:0(它正在localhost上测试…而不是www.mywebsite)

 Remote Address:[::1]:80
    Request URL:http://www.mywebsite/bg/profile/ajax_get_new_posts
    Request Method:POST
    Status Code:200 OK
    Request Headersview source
    Accept:application/json, text/javascript, */*; q=0.01
    Accept-Encoding:gzip,deflate
    Accept-Language:en-US,en;q=0.8
    Connection:keep-alive
    Content-Length:9
    Content-Type:application/x-www-form-urlencoded
    Host:localhost
Origin:http://localhost
Referer:http://www.mywebsite/bg/profile
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
X-Requested-With:XMLHttpRequest
Form Dataview sourceview URL encoded
post_id:3
Response Headersview source
Connection:Keep-Alive
Content-Length:0
Content-Type:application/json
Date:Fri, 31 Oct 2014 13:24:56 GMT
Keep-Alive:timeout=5, max=97
.......

控制台日志给我:

null --->ajaxPostProfile.js:28
Uncaught TypeError: Cannot read property 'content' of null --->ajaxPostProfile.js:31

要使用return ($result);,请使用echo。像这样:

function ajax_get_new_posts(){
        header('Content-Type: application/json');
            $post_id=$this->input->post('post_id');
            $chat_messages_html='testing';
            $result = array('status' => 'ok', 'content' => $chat_messages_html);
            $result=json_encode($result);
            echo $result;
            exit();
        }

然后再次测试。

您可以使用以下语法在PHP中返回json数据:

  header('Content-Type: application/json');
  echo json_encode($result);