为什么在ajax请求中没有输出json内容


Why json content is not being output in ajax request?

我正在尝试将json数据从一个页面提取到另一个页面。

js_page.php

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
    $.get('php_page.php', function(data){
        for (var i = 0; i < data.length; i++) {
            alert(data[i]);
        };
    }, 'json');
</script>
</body>
</html>

如果我在没有任何html的情况下设置php_page.php的页面内容,它就可以工作了。

php_page.php

<?php
 echo $name = json_encode(array('myname', 'myage'));

但是,如果我把代码放在html内容js_page.php中,而不输出任何内容。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <?php
     echo $name = json_encode(array('myname', 'myage'));
  ?>
</body>
</html>

为什么会出现这种情况以及如何解决?

您不应该将JSON放入HTML标记中。您的第一个版本的php_page.php是正确的。