【发布时间】:2015-06-11 19:39:05
【问题描述】:
我使用这个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 这样的虚拟文本,我会收到一个语法错误SyntaxError: Unexpected token h {stack: (...), message: "Unexpected token h"}
这可能是什么原因,我可以做些什么来解决它?
【问题讨论】:
-
您返回的是字符串,而不是 JSON。
-
在你的 mysql_fetch_array 添加一个标志 MYSQL_ASSOC 。否则你不会有数组键作为标题。为了测试更好的 print_r($r);检查你在 $r 有什么
-
你应该看看 json_encode。
-
@RoryMcCrossan 你能建议一个修复方法吗?
标签: javascript php jquery ajax post