![](/img/trans.png)
[英]jQuery Ajax PHP POST method with response array[] instad sent data. How to get send values in response?
[英]Why php json response does not send back the data array to ajax jquery request?
我向php服务器发出了一个ajax请求,在该服务器中我从表单请求发送了数据,我将从服务器中取回相同的数据,仅用于测试客户端和服务器之间抛出的相同数据的请求和响应。
$.ajax({
method: "POST",
url: "addRaces",
dataType: "json",
data : sending_data,
success : ...
})
sending_data
是一个类似{field_form_name : value}
的数组
服务器使用以下代码响应请求:
$data = [];
foreach ($request->Input() as $key => $value) {
$data[$key] = $value;
}
return json_encode($data);
相同的数据应该返回给客户端,但是alert(response)
或显示调试数据(例如$('#debug').html(response);
当我尝试推送服务器答案时出现了奇怪的事情
return json_encode([
'debug' => $data['name']
]);
并向客户显示结果
$('#debug')。html(response.debug);
它适用于显示我已从客户端发送的正确值字段的单个键值响应。 否则,是否将完整data
作为数组发送给客户端,调试区域中什么也没有显示。
return json_encode($data);
不会工作。 因为它将json字符串返回给调用方法,而该调用方法不是前端的jQuery。 不要将前端(html javascript,jQuery等)与后端(PHP)混淆,它们两个在不同的计算机上运行。 一个在客户端,另一个在您的服务器。
您应该使用echo json_encode($data);
这将输出json字符串,并且您的Web服务器会将其发送到前端。
确保您正在回显未返回的数据,如@bansi所述,如果您已经回显了数据,请使用var_dump(json_encode($data))
进行调试。 如果json_encode()
发现错误,它将返回False
而不是预期的json数组。
您应该使用开发人员工具进行调试,而不要使用代码$('#debug').html(response.debug);
。 开发人员工具的“网络”选项卡对于调试HTTP请求非常有用,它将显示响应标头和请求主体。
在你的情况,只是改变return
到echo
像@半丝的答案 。 return
命令不会打印数据,因此您在响应中什么也没得到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.