我需要将哈希从服务器端传递到客户端。我分别在前端和后端使用 jquery 和 perl CGI::Application。我是使用 jquery 的初学者,因此我修改了 jquery 表单插件示例,该示例显示了如何处理从服务器http://jquery.malsup.com/form/#json返回的 JSON 数据。我尝试将给定的代码与我最喜欢的 perl Web 框架 CGI::Application 一起使用。在CGI::Application::Plugin::JSON
传递标量值时效果很好,但由于缺乏文档,我无法弄清楚如何传递数组或散列或复杂的数据结构。传递哈希时,我使用以下代码片段:-
foreach my $k (sort keys %hash)
{
return $self->add_json_header ( { message => $hash{$k}} );
}
这是我在 apache 错误日志中得到的错误:
ajaxtest.pl: Odd number of elements in hash assignment at /usr/local/share/perl/5.10.0/CGI/Application/Plugin/JSON.pm line 98., referer: http://localhost/echo.html
在传递标量时,我正在使用 CGI::Application::Plugin::JSONjson_body
函数。请让我知道我哪里出错了。以下是 html 文件中的 Jquery 代码,它也在表单插件站点上给出(上面给出的链接):
// prepare the form when the DOM is ready
$(document).ready(function() {
// bind form using ajaxForm
$('#jsonForm').ajaxForm({
// dataType identifies the expected content type of the server response
dataType: 'json',
// success identifies the function to invoke when the server response
// has been received
success: processJson
});
});
function processJson(data) {
// 'data' is the json object returned from the server
alert(data.message);
}
任何关于使用CGI::Application::Plugin::JSON
复杂数据结构的建议,比如散列的散列和数组的数组都是非常受欢迎的,因为我将来会需要它。