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

Javascript 为什么ajax请求中没有输出json内容?,javascript,php,html,json,Javascript,Php,Html,Json,我试图从一个页面到另一个页面获取json数据 js_page.php 文件 $.get('php_page.php',函数(数据){ 对于(变量i=0;i

我试图从一个页面到另一个页面获取json数据

js_page.php

文件
$.get('php_page.php',函数(数据){
对于(变量i=0;i
如果我在没有任何html的情况下设置php_page.php的页面内容,它就会工作

php_page.php


这是为什么?如何解决?

不应该将JSON放在HTML标记中。您的第一个版本的
php\u page.php
是正确的。

可能是因为您混合了服务器端代码和客户端代码。因为
php\u page.php
返回HTML,并且告诉
$.get()
希望使用json
$.get()
无法知道HTML的哪些部分是JSON。您只需要从php页面获取响应。您无法在hmtl中使用phptags@Jim如果我将php_page.php的内容类型更改为“application/json”,该怎么办?如果我使用header函数更改php_page.php的内容类型,比如页面顶部的header('content-type:application/json'),我仍然无法在这里获得任何良好的效果,我还是没有在js_页面上看到任何东西。php@user1906399如果愿意,您可以将content-type标题设置为
“content-type:fluffyrabbits”
——您仍然可以发送混合了json的html,这是没有用的。你为什么要这么做,这毫无意义
<!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>
<?php

 echo $name = json_encode(array('myname', 'myage'));
<!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>