【发布时间】:2014-10-18 12:37:43
【问题描述】:
我正在尝试从我的 php 脚本中获取 JSON 数组。以下是我在我的 jsp 文件中编写的 Jquery 代码-
$(document).ready(function()
{
alert("Inside Ready");
$.getJSON('http://example.com/root_dir/test_json.php', function(data)
{
alert(data);
});
});
但是,上面的代码只显示了外部警报(即 alert("Inside Ready");)而不显示内部警报(即 alert(data); )。当我在浏览器中点击 URL 时,我得到了预期的 json。所以 URL 和 php-script 肯定没有问题。
以下是 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。谢谢你..!
【问题讨论】:
-
查看浏览器的开发者工具。重新加载页面。 JavaScript 控制台说什么?您能在 Net 选项卡中看到您的 Ajax 请求吗?格式是否正确?它得到回应了吗?回答正确吗?
-
你的 PHP 告诉浏览器它正在发送 HTML,你应该在里面有
header("Content-Type: application/json");。 -
将错误处理程序添加到您的 ajax 调用中!
-
我认为您的 http 请求不包含 Access-Control-Allow-Origin 标头。请检查一下
-
终于找到了解决方案。实际上有“无传输”错误,所以参考上面链接stackoverflow.com/questions/9160123/…上的答案,我只是放置了“$.support.cors = true;” http请求前的声明。
标签: javascript php jquery json