我有一个输出一些JSON的PHP页面。页面加载后,我想使用jQuery AJAX输出JSON。然而,一切都没有发生。 alert()对话框不会出现,也不能与JavaScript控制台一起使用。我的jQuery AJAX调用出了什么问题?
<script type="text/javascript">
jQuery.ajax({ url: 'http://www.domain.com/page.php',
dataType: 'json',
success: function(data) {
var obj = jQuery.parseJSON(data);
alert(obj.json_array[0]);
alert(obj.json_array[1]);
alert(obj.json_array[2]);
}
});
</script>
PHP是:
<?php
$array = [
'foo' => 'bar',
'bar' => 'foo',
'int' => 4
];
$json_array = json_encode($array);
echo $json_array;
?>
答案 0 :(得分:1)
在PHP中,你可以拥有数组,其中每个元素都有一个键和一个值,但是一旦你在javascript中解析它,它就会成为一个对象。因此,使用guestUser
,[0]
或[1]
无效。您必须使用[2]
,foo
或bar
。此外,当您回显字符串时,不会以任何方式保存包含该字符串的变量的名称。保存(回显)的唯一东西就是字符串。在您的示例中,int
回显echo $json_array;
,并且在解析时,您将获得一个对象。所以你不需要说{"foo":"bar","bar":"foo","int":4}
,你只需说obj.json_array
。所以要解决你的问题,
替换
obj
与
alert(obj.json_array[0]);
alert(obj.json_array[1]);
alert(obj.json_array[2]);