PHP函数不返回任何数据给JQuery ajax方法
我正在使用jQuery的ajax方法将一些数据发布到服务器并取回响应。虽然服务器端php代码正在返回一个json编码的字符串/数组,但响应会返回为空。PHP函数不返回任何数据给JQuery ajax方法
有人能指出我犯的错误吗?下面是如何使用我正在触碰postData.php页面的jquery ajax方法。
$.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数组声明后面回显一个字符串,它在firebug中回显它,但是响应是当我在成功回调中执行console.log时,它会返回为空。
这是所有在postData.php?你需要把它写出到缓冲区(echo json_encode($ data);)。
为了得到结果回到你的Ajax功能,必须呼应它,而不是返回,如:
$data = array();
$data['test']=1;
echo json_encode($data);
谢谢!我已经使用jquery和ajax了很多,并且急于快速完成任务,我犯了这个有趣的错误! – macha 2011-05-23 01:00:05
像morgar指出了这一点,你应该呼应的数据备份,而不是使用的回报。
$data = array();
$data['test']=1;
echo json_encode($data); //echo instead of return
同时,在你的ajax成功函数中,你应该像数组一样访问响应。
**Incorrect**
console.log(response); //--> would return an error
**Should Be**
console.log(response[0]); //--> read the returned first array element
为什么会是一个错误?他只是console.log()'数组。 – 2011-05-23 02:15:56
@John Green - PageSpike:嗯,我会认为这会导致错误,因为如果他有2个元素在数组中,要获得它的值将是响应[0]和响应[1]?我错了吗? – maomaopop 2011-05-26 02:43:17
通常称为稀疏数组。这样做是合法的。 – 2011-05-26 05:23:54
谢谢!!我已经使用jquery和ajax了很多,并且急于快速完成任务,我犯了这个有趣的错误! – macha 2011-05-23 01:00:29