因为我没有定义。我失败的地方?
代码:
function add(id,cost){ var info = { "id" : id, "cost": cost, }; $.ajax({ data: info, url: 'a.php', type: 'post', success: function (datos) { alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2); } }); }
存档.php php:
$cost=$_POST['id']*$_POST['cost'] + 137; echo json_encode(array("r1" =>$_POST['id'], "r2" => $cost));
为什么您认为$.ajax
会将datos
理解为JSON?您需要指定它,您可以使用几种方法来完成它。
解析它
success: function (datos) {
datos = JSON.parse(datos);
alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
}
在$.ajax
中指定自身
$.ajax({
data: info,
url: 'a.php',
type: 'post',
dataType:"json",
....
在PHP中设置头(对 我建议你用第一个和第三个的组合。不要留下任何一块石头。header('Content-Type: application/json');
Datos可能是一个字符串
您可以执行以下操作:
datos = JSON.parse( datos );
或者,您可以将返回类型设置为JSON:
$.ajax({
data: info,
dataType: 'json',
url: 'a.php',
type: 'post',
success: function (datos) {
alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
}
});