簡體   English   中英

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"}"

在響應標頭上,我得到Content-Length: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
.......

Console.log給我:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM