Я отправляю объект JSON из моей программы Perl в сегмент кода javascript jQuery. Хотя я много лет занимаюсь этим в PHP, что-то не работает. Мой код Perl делает следующее:
@cards=(1,2,3,4,5);
@repairs=(6,7,8,9,10);
my $json->{"cards"} = \@cards;
$json->{"repairs"} = \@repairs;
print "Content-type: text/html", "\n\n";
my $json_text = to_json($json);
print $json_text;
Теперь мой сегмент javaScript/jquery:
$.post(perl_program_name,
{
card_code:card_code,
},
function(object) {
alert('alerting'+object);
var cards=new Array;
var cards=object.cards;
alert(cards);
...
Первое предупреждение показывает следующее:
{"cards":["1","2","3","4","5"],
"repairs":["6","7","8","9","10"]
}
Но второе предупреждение показывает, что карты имеют длину 0. Массив не был привязан к картам. Двойные кавычки не добавляются кодом Perl. Это должен быть побочный продукт JSON, отправляемый через шлюз CGI.
Когда я запускаю автономный сценарий Javascript, он работает.
Но не при прохождении через CGI.
Спасибо за любую помощь.
Проверьте: What is the correct JSON content type?
use strict;
use warnings;
use JSON;
print "Content-type: application/json\n\n";
my $json = {
cards => [1..5],
repairs => [6..10],
};
print to_json($json);