PHP不会返回任何响应

时间:2011-08-22 23:52:36

标签: php jquery ajax

我是PHP和JQuery的新手。

我有这个非常简单的PHP函数

function save($data)
{
    $allData = load();
    array_push($allData, $data);
    global $filePath;
    $fp = fopen($filePath, 'w+') or die("I could not open $filePath.");
    fwrite($fp, serialize($allData));
    echo "{status:\"success\" , result:" . (string)(count($allData) - 1) . "}";
    fclose($fp);
}

从磁盘读取数组,聚合数据并返回结果。 我有这个JQuery代码:

  $jQuery.ajax({
            url: serverUrl,
            type: "GET",
            data: {method: "save", data: jQuery.param(pData)},
            cache: false,
            success: function (data) {
                alert("data");
            }
        });

现在的问题是,如果我通过firefox中的url调用PHP方法,我得到的结果打印在屏幕上,如果我通过上面的jQuery代码调用此方法,它将写入文件但不会返回任何内容,我在“响应”选项卡下的firebug中看到什么。我哪里出错了?

感谢。

2 个答案:

答案 0 :(得分:3)

您在成功时提醒"data"而不是data

尝试回显正确格式化的JSON:

echo '{"status": "success", "result": "'. (string)(count($allData) - 1) .'"}';

然后提醒:

alert(data.status);

答案 1 :(得分:0)

$jQuery.ajax({
            url: serverUrl,
            type: "GET",
            data: {method: "save", data: jQuery.param(pData)},
            dataType: 'json', //added by me
            cache: false,
            success: function (data) {
                alert("data");
            }
        });

并在你的php中使用更安全的方法

$var  = array('status' => 'success', 'result' => count($allData) - 1 );
echo json_encode($var);