我使用这个jQuery函数通过Ajax获取数据:
function addContentPrt(cid){
$.ajax({
url: "<?=parseLink('addContent.php')?>",
type: "POST",
cache: true,
dataType:'json',
data: {id: cid},
success: function(returnedData){
console.log(returnedData);
},
error: function (xhr, tst, err) {
console.log(err);
}
});
}
并在接收端:
<?
header("Content-Type: application/json", true);
if(isset($_POST['id'])) {
$id = $_POST['id'];
}
$sql = mysql_query("SELECT * FROM pharmacies WHERE id=$id");
$r = mysql_fetch_array($sql);
echo $r['title'];
echo $id;
?>
echo $id
确实返回到ajax,但不是$r['title']
,它在控制台中变为null
。如果我添加一些虚拟文本,例如hello world
,我会收到一个synthax错误SyntaxError: Unexpected token h {stack: (...), message: "Unexpected token h"}
这可能是什么原因,我该怎么做才能解决它?
答案 0 :(得分:4)
<?
header("Content-Type: application/json", true);
if(isset($_POST['id'])) {
$id = $_POST['id'];
}
$sql = mysql_query("SELECT * FROM pharmacies WHERE id=$id");
$r = mysql_fetch_array($sql);
echo json_encode('id' => $id, 'title' => $r['title']);
?>
并在你的ajax成功:
success: function(returnedData){
console.log(JSON.parse(returnedData));
},
答案 1 :(得分:0)
在ajax中,您将数据类型指定为json,这是服务器期望的格式。因此,为了获得结果,您需要从服务器返回json结果。通过使用json_encode($ r),其中$ r可以是任何数组。
答案 2 :(得分:0)
return json_encode($r);
然后您可以在成功
$r