我正在尝试从我的php脚本中获取JSON数组。以下是我在jsp文件中编写的Jquery代码 -
$(document).ready(function()
{
alert("Inside Ready");
$.getJSON('http://example.com/root_dir/test_json.php', function(data)
{
alert(data);
});
});
但是,上面的代码只显示外部警报(即警报(“内部就绪”);)并且没有显示内部警报(即警报(数据);)。当我在浏览器中点击URL时,我得到了预期的json。所以肯定在URL和php脚本中没有问题。
以下是 test_json.php
<?php
//Create an array
$json_response = array();
$row_array['label'] = 'A';
$row_array['value'] = $row['0 to 2'];
$row_array['color'] = '#FA2020';
array_push($json_response,$row_array);
$row_array['label'] = 'B';
$row_array['value'] = $row['2 to 3'];
$row_array['color'] = '#2BD95A';
array_push($json_response,$row_array);
$row_array['label'] = 'C';
$row_array['value'] = $row['above 3'];
$row_array['color'] = '#F7F739';
//push the values in the array
array_push($json_response,$row_array);
echo json_encode($json_response);
?>
在浏览器中点击URL时获取以下json -
[{"label":"A","value":"19","color":"#FA2020"},{"label":"B","value":"1","color":"#2BD95A"},{"label":"C","value":"2","color":"#F7F739"}]
我正在使用 jquery-1.10.2.js 。谢谢..!
答案 0 :(得分:2)
试试这个......希望这对你有用
$(document).ready(function()
{
$.ajax({
type:'POST',
url:'http://example.com/root_dir/test_json.php',
dataType:'JSON',
data:{
},
success:function(data1){
alert(data)
},
error:function(XMLHttpRequest,textStatus,errorThrown){
alert("error");
}
});
});
答案 1 :(得分:0)
您的代码似乎运行正常 - 我刚刚用你的代码创建了一个测试页面,它可以运行 -
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
alert("Inside Ready");
$.getJSON('http://<<CHANGE SERVER NAME>>/zz-test/get_json.php', function(data)
{
alert(data);
});
});
</script>
</head>
<body>
</body>
</html>
答案 2 :(得分:0)
你的jQuery和PHP代码看起来很好,根据我的经验,它通常是从另一个域调用你的PHP脚本引起的错误(即:file:///)。如果您可以访问浏览器的控制台,您应该能够看到这是否实际上是导致数据无法显示的错误。
一个解决方案是在PHP代码的顶部添加:header('Access-Control-Allow-Origin: *');
。然而,这有一些安全问题,因此不应永久使用。
或者,您可以将所有HTML,CSS,JS,jQuery等代码上传到托管PHP文件的Web服务器,这是一个更好的选择。
最后,如果上面的选项不可用,你可以使用JSON-P(虽然这不适用于POST请求),但在Simple jQuery, PHP and JSONP example?
有一个问题。