【发布时间】:2014-10-16 11:32:16
【问题描述】:
我正在尝试从一个页面获取 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>
为什么会这样以及如何解决?
【问题讨论】:
-
可能是因为您将服务器端代码与客户端混合在一起。
-
因为
php_page.php返回 HTML 并且您告诉$.get()期待 json。$.get()无法知道 HTML 的哪些部分是 JSON。 -
您只能从 php 页面获取响应。你不能在 hmtl 标签中使用 php 来实现它
-
@Jim 如果我将 php_page.php 的内容类型更改为 "application/json" 怎么办?我仍然没有得到任何东西
-
在这里工作正常codepad.viper-7.com/KbQFEg
标签: javascript php html json