Как я могу легко использовать Ajax, perl и JSON вместе?

StackOverflow https://stackoverflow.com/questions/824385

Вопрос

Я пытаюсь создать веб-страницу с помощью Ajax.

Пример:

  1. Я создаю файл Perl / CGU, который запускает простой post;

    Файл:..test.cgi?имя=Томас

    Отправь ответный текст:Тебя зовут Томас!

  2. Я создаю html-файл, который может использовать post, но затем страницу приходится перезагружать.Я использую ввод текста и кнопку.

Как я могу легко использовать Ajax, Perl и JSON вместе?Вот как это должно работать вместе, но как?

Html + Ajax / JavaScript ВЫЗОВ Perl + ВОЗВРАТ "JSON-perl-string" В Ajax ПРЕОБРАЗОВАНИЕ-JSON -> Html

Это было полезно?

Решение

Для JSON попробуйте Модуль CPAN JSON.

Для использования XMLHttpRequest я рекомендую эти замечательные учебные пособия от IBM.

Освоение Ajax, Часть 1:Введение в Ajax

Две статьи, которые вас, вероятно, больше всего заинтересуют, - это эти две:

Освоение Ajax, Часть 10:Использование JSON для передачи данных

Освоение Ajax, Часть 11:JSON на стороне сервера

Вы можете получить всю серию из 11 частей используя эту ссылку для поиска.

Другие советы

Вам просто нужно, чтобы ваше приложение возвращало JSON (вы можете просто использовать JSON модуль на CPAN для этого) вместо HTML.Это означает, что вам нужен заголовок типа контента application / json вместо text / html, а затем вам нужно использовать этот JSON в вашем Javascript (здесь лучше всего использовать библиотеку Javascript, такую как jQuery или Prototype).

jquery предоставляет очень простую поддержку ajax и JSON с помощью своего API, он обрабатывает все объекты XMLHttpRequest за вас. jQuery - jQuery - запрос

Если ваша основная цель - избежать обновления страницы, вы можете попробовать удаленный скрипт, используя объект XMLHttpRequest в XML.

Подробнее об этом здесь.

Предоставьте новый модуль CPAN Йоте попробовать.Он привязывает объекты javascript к perl с помощью JSON rpc.

Вот пример этого на клиенте :

Сервер

package Hello;
use base 'Yote::AppRoot';

sub hello {
  return "Hello World";

1;

Клиент

$.yote.init();
var hello_app = $.yote.fetch_app('Hello');

alert( hello_app.hello() );
   // outputs "Hello World"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top