一尘不染

如何从Perl CGI程序发送JSON响应?

json

我正在从perl / cgi程序编写JSON响应。标头的内容类型必须为“ application /
json”。但这似乎并未被识别为响应是作为文本文件抛出的。

我将使用jQuery的JSON库捕获响应。在发送JSON响应时我缺少什么地方。


阅读 351

收藏
2020-07-27

共1个答案

一尘不染

我在perl / cgi程序中执行此操作。

我在代码的顶部使用了这些:

use CGI qw(:standard);
use JSON;

然后我打印json标头:

print header('application/json');

这是以下内容的类型:

Content-Type: application/json

然后我像这样打印出JSON:

my $json->{"entries"} = \@entries;
my $json_text = to_json($json);
print $json_text;

我的javascript调用/处理如下:

   $.ajax({
        type: 'GET',
        url: 'myscript.pl',
        dataType: 'json',
        data: { action: "request", last_ts: lastTimestamp },
        success: function(data){
            lastTs = data.last_mod;
            for (var entryNumber in data.entries) {
                 //Do stuff here
            }
        },
        error: function(){
            alert("Handle Errors here");
        },
        complete: function() {
        }
    });

如果您不想安装JSON库,则不必一定要使用它,可以打印JSON格式的纯文本,但是这使将perl对象转换为JSON prety很容易。

2020-07-27