在名为test.html的页面上,我想通过jquery ajax从名为test2.php的页面中检索一些JSON数据。
以下代码不起作用
的test.html:
$.ajax({
url:"test2.php",
type:"POST",
dataType: "json",
success: function(data){
alert(data.b.d);
}
});
test2.php:
<?php
$c= '{"a":{"d":6994,"e":20003,"f":7968,"g":12505,"h":6814},"b":{"d":10623,"e":3404,"f":405,"g":17066,"h":24219}}';
echo $c;
?>
答案 0 :(得分:0)
您的test2.php不包含正确的标头。刚刚添加此内容
header('Content-type: application/json');
答案 1 :(得分:0)
我建议使用像Firebug这样的JS调试工具 检查您的请求是否返回有效的回复。
答案 2 :(得分:0)
如果您没有随请求发送任何数据,则可能不需要使用POST。你可以改为GET。甚至还有一种有用的速记方法:
$.get("test2.php", function(data) {
// handle your data here
}, 'json');
在test2.php
你正在艰难地做事。而不是尝试构建JSON字符串,只需构建要发送到客户端的数据结构。然后使用json_encode()
对其进行编码。您应该发送JSON内容类型标头,以便jQuery知道如何解码数据:
$c = array(
'a'=>array(
'd' =>6994,
'e' => 2003,
'f' => 7968,
)
// and so on...
);
header('content-type: application/json');
echo json_encode($c);