我正在从perl / cgi程序编写JSON响应。标头的内容类型必须为“ application / json”。但这似乎并未被识别为响应是作为文本文件抛出的。
我将使用jQuery的JSON库捕获响应。在发送JSON响应时我缺少什么地方。
我在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很容易。