Echo'ing php作为ajax调用的“返回值”

时间:2014-04-10 22:36:27

标签: javascript php jquery ajax json

我的 jquery 代码:

    var value = $.ajax({
            type: "POST",
            url: "to_submit.php",
            data: $('#submit').serialize(),
            cache: false,
            async: true
        }).success(function(response){
            console.log(response);
            console.log("data received");
            console.log(response.data);
            $("#appended").append(response);});
        }).error(function() {});
        });

PHP

include("../header.php");
$to_return = "test";
echo "\ndata: " . json_encode($to_return);
flush();

javascript部分中的console.logs如何表现:

  

第一个console.log :(很多代码信息(头部,身体等)与我的网站标题相关!)

     

仍然是第一个console.log:data:" test"

     

console.log("收到的数据");

     

第二个console.log:undefined

因此,数据被识别为 undefined ,并且正在刷新大量代码,我无法弄清楚原因......

2 个答案:

答案 0 :(得分:3)

两件事:首先,您不需要使用flush() - 只需echo您的数据并结束您的脚本。

其次,echo语句的结果:data: ["insert your data here"]无效JSON,您无法在客户端解码。

答案 1 :(得分:2)

更改

echo "\ndata: " . json_encode($to_return); 

echo json_encode($to_return); 

因为js解码函数无法正确解析此字符串(它不是有效的json字符串)。