Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > javascript get JSON


Автор: od0201 20.2.2015, 01:08
доброе время суток

цель: из javascript  сделать get запрос и в ответ получить JSON 

моя проба
Код

$.get("http://od0201.ru/cgi-bin/index.cgi",  {object : "request"}, function(data){
  console.log(data.ID+'/'+data.Pasword);
},'json');

Код

sub request{
    use JSON;
    %json_hash;
    $json_hash{ID}="11113434";
    $json_hash{Pasword}="dsdfsdf";
    $json = JSON->new->allow_nonref;
    $json_text=$json->encode( \%json_hash );
    print $json_text;
}

Код

{"ID":"11113434","Pasword":"dsdfsdf"}

где и что я делаю не так,

Автор: ginnie 20.2.2015, 08:53
od0201, не помешало бы указать, как выглядит запрос, ответ ожидаемый и реально получаемый, а также, как запускается perl-код на бэкенде.

Автор: od0201 20.2.2015, 16:28
Цитата(ginnie @ 20.2.2015,  08:53)
od0201, не помешало бы указать, как выглядит запрос, ответ ожидаемый и реально получаемый, а также, как запускается perl-код на бэкенде.

запрос выглядит как показано в "код Javascript" который встроен в приложение Хрома, на веб сервере Perl, в нем "код Perl", данный код отрабатывает как я и ожидаю (потом я его изменю), Данный код на выходе дает как я и ожидаю "Разметка HTML", которую, по идее должен перехватить "код Javascript", но этого не происходит.

Вопрос не к самому коду, а к методу реализации задачи. Я все передаю по HTTP, правильно ли это?

Автор: baldina 20.2.2015, 16:35
Цитата(od0201 @  20.2.2015,  16:28 Найти цитируемый пост)
Я все передаю по HTTP, правильно ли это?

есть другой способ?  smile 

od0201, вы делаете jsonp запрос, а указываете json, так попробуйте:
Код

$.get("http://od0201.myjino.ru/bsb/cgi-bin/index.cgi",  {object : "request"}, function(data){
  console.log(data.ID+'/'+data.Pasword);
},'jsonp');

http://jsfiddle.net/s51dkum8/

Автор: Pfailed 22.2.2015, 09:10
Ну если это весь код, то как минимум, вы забыли напечатать заголовки HTTP ответа

Автор: od0201 22.2.2015, 13:32
Решить проблему помогли в другой ветке форума, моей ошибкоq было то, что я на выходе формировал даннные с тегами

к тому-же немного был исправлен javascript
Код

$.getJSON("http://od0201.ru/cgi-bin/index.cgi",  {object : "request"}, function(data){
  console.log(data);
});


Всем спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)