JSON от Perl до Javascript

0

Я отправляю объект 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.

Спасибо за любую помощь.

Теги:
post

1 ответ

3
Лучший ответ

Проверьте: 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);
  • 0
    Бесконечно благодарен. Это был виновник.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню