在客户端和php服务器之间发送json数据

时间:2015-02-18 10:44:53

标签: php json

这是服务器端代码

<?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。请有人告诉我是什么问题

4 个答案:

答案 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));
}