这是服务器端代码
<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 01 Jan 2016 00:00:00 GMT');
header('Content-type: application/json');
$id = $_GET['id'];
$data = array("Hello", $id);
echo json_encode($data);
?>
这是客户端代码
<html>
<head>
<script src="jquery-1.1.1.min.js"></script>
<script language="javascript">
function show(json) {
alert(json);
}
function run() {
$.getJSON("/localhost/jserver1.php",
{ id: 567 },
show);
}
window.onload=run;
</script>
</head>
<body>
JSON Test Page.
</body>
</html>
我想在这里做的是我想使用php和json在客户端和服务器之间发送消息。当我运行服务器端代码我得到输出为hello与在localhost中的url中给出的id,但是当我运行客户端代码我只得到html页面的主体,我没有收到警报使用run方法中的输入id。请有人告诉我是什么问题
答案 0 :(得分:1)
而不是
$.getJSON("URL",
{ id: 567 },
show
);
window.onload=run;
使用 -
$.getJSON("URL",
{ id: 567 },
function(response){
show(response);
});
window.onload=run();
答案 1 :(得分:0)
代码仍然很糟糕,你应该拆分你的文件。但是我们走了:
<?php
if($_GET['id']) {
$id = $_GET['id'];
$data = array("Hello", $id);
echo json_encode($data);
} else {
?>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script type="text/javascript">
function show(json) {
alert(json);
}
function run() {
$.ajax({
url : '/whatever/this/page/is',
type : 'GET',
data : 'id=567',
success: function(res) {
show(res);
}
});
}
window.onload=run;
</script>
</head>
<body>
JSON Test Page.
</body>
</html>
<?
}
答案 2 :(得分:0)
尝试删除 /localhost/jserver1.php 前面的 / 并添加 http:// 。
目前它指的是 localhost / localhost / jserver1.php
答案 3 :(得分:-1)
尝试使用此代码
function show(json) {
alert(JSON.stringify(json));
}