Javascript 不从ajax POST返回数据

Javascript 不从ajax POST返回数据,javascript,php,jquery,ajax,post,Javascript,Php,Jquery,Ajax,Post,我使用jQuery函数通过Ajax获取数据: function addContentPrt(cid){ $.ajax({ url: "<?=parseLink('addContent.php')?>", type: "POST", cache: true, dataType:'json', data: {id: cid}, success: function(returnedData){ console.log(ret

我使用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);
    } 
  });
}
函数addContentPrt(cid){
$.ajax({
url:“”,
类型:“POST”,
是的,
数据类型:'json',
数据:{id:cid},
成功:函数(返回数据){
控制台日志(返回的数据);
},
错误:函数(xhr、tst、err){
控制台日志(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
。如果我添加一些伪文本,比如
helloworld
,我会得到一个syntax错误
SyntaxError:Unexpected token h{stack:(…),消息:“Unexpected token h”}


这可能是什么原因,我可以做些什么来修复它?

在ajax中,您将数据类型指定为json,这是服务器期望的格式,因此为了获得结果,需要从服务器返回json结果。或者使用json_encode($r),其中$r可以是任何数组。

返回json_encode($r)
然后可以在success中读取变量
$r
,返回的是字符串,而不是JSON。在MYSQL\u fetch\u数组中添加一个标志MYSQL\u ASSOC。否则您将不会将数组键作为标题。。用于测试更好的打印效果(r$r);若要查看$RYU的内容,您应该查看json_encode。@RoryMcCrossan您能建议一个修复方案吗?我这样做了,但它仍然返回
null
。。。或者自己创建数组并将其传回:
$results=['id'=>$id,'title'=>$r['title'];echo json_编码($results)哦,您需要提供特定的标题。检查此主题:您确定在服务器端设置了$r['title']或$id吗?
<?
  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']);
?>
success: function(returnedData){
  console.log(JSON.parse(returnedData));
},