从服务器获取json并将其分配给变量

时间:2015-06-09 17:50:07

标签: javascript ajax json perl

我是Javascript的新手,但没有编程。我正在尝试编写一个与服务器交换信息的程序。我无法让它工作,甚至简化和借用其他人的代码也无济于事。我做错了什么?

这是客户:

<!DOCTYPE html>
<html>

<head>
    <title>Testing</title>
</head>

<body>
    <script>
        GET_JSON = function(callback) {
            var req = new XMLHttpRequest();
            req.open(POST, "http://www.skutan.com/cgi-bin/hvserver.cgi", true);
            req.onreadystatechange = function() {
                if (this.readyState == 4) {
                    callback(JSON.parse(req.responseText));
                }
            }
            req.send("a=2&b=1");
        }

        JSONCallback = function(JSONObj) {
            alert(JSONObj);
        };
    </script>

    <button type="button" onclick="GET_JSON(JSONCallback)">Test</button>

    <h1>.</h1>
    <span id="koord"></span>
</body>

</html>

服务器在perl中使用,看起来像这样:

#!/usr/bin/perl -wT                                                             
use strict;
use CGI qw(:standard);

my @fields = param;

my $json_ut = "{\"a\": 1, \"b\": 2}";

print("Content-type: application/json; charset=utf-8\n\n");

print("$json_ut");

为什么我在客户端没有任何警报?

1 个答案:

答案 0 :(得分:0)

如果您检查了浏览器的控制台,则会发现错误,例如

ReferenceError: POST is not defined

引用该行

req.open(POST, "http://www.skutan.com/cgi-bin/hvserver.cgi", true);

应该是

req.open("POST", "http://www.skutan.com/cgi-bin/hvserver.cgi", true);