0

我正在使用 jquery 的 ajax 方法将一些数据发布到服务器并取回响应。虽然服务器端 php 代码返回一个 json 编码的字符串/数组,但响应返回为 null。

有人可以指出我正在犯的错误。下面如果我使用我的 jquery ajax 方法点击 postData.php 页面。

        $.ajax({
            url:'postData.php',
            type:'POST',
            data:data,
            dataType: "json",
            success: function(response){
                console.log(response);
            }
        });

postData.php 中的内容非常简单,因为我仍在开发它。

    $data = array();
//inside postData.php
    $data['test']=1;
    return json_encode($data);

它应该返回一个 json 字符串,但它返回 null。我还尝试在 $data 数组声明之后回显一个字符串,它确实在萤火虫中回显它,但响应是当我在成功回调上执行 console.log 时,它返回为空。

4

3 回答 3

3

要将结果返回到您的 ajax 函数中,您必须回显它,而不是返回,例如:

$data = array();
$data['test']=1;
echo json_encode($data);
于 2011-05-23T00:57:39.987 回答
2

这就是 postData.php 中的全部内容吗?您需要在某个时候将其写入缓冲区 (echo json_encode($data);)。

于 2011-05-23T00:56:55.777 回答
0

就像 morgar 指出的那样,您应该回显数据而不是使用返回。

$data = array();
$data['test']=1;
echo json_encode($data); //echo instead of return

同时,在您的 ajax on success 函数中,您应该像访问数组一样访问响应。

**Incorrect**
console.log(response); //--> would return an error

**Should Be**
console.log(response[0]); //--> read the returned first array element
于 2011-05-23T01:07:48.717 回答