Почему это приложение Flex "Hello World" не получает результат моего удаленного вызова HTTPService? - PullRequest
0 голосов
/ 29 апреля 2009

Когда я перехожу к http://localhost:3000/hello/sayhello, Рельсы выводят:

hello world!

как HTML.

Но когда я запускаю это приложение Flex "Hello World", я вижу кнопку и текстовое поле, но оно не получает вывод вызова HTTPService на мой URL-адрес Rails. Есть идеи почему?

<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical"
    backgroundGradientColors="[#ffffff, #c0c0c0]"
    width="100%"
    height="100%">
    <mx:HTTPService
        id="helloSvc"
        url="http://localhost:3000/hello/sayhello"
        method="POST" resultFormat="text"/>
    <mx:Button label="call hello service"
        click="helloSvc.send()"/>
    <mx:TextInput text="{helloSvc.lastResult}"/>
</mx:Application>

Ответы [ 2 ]

1 голос
/ 29 апреля 2009

Я скопировал и вставил ваш код в новое приложение Flex, изменив URL-адрес так, чтобы он указывал на сценарий, который, как я знаю, работает с приложениями Flex, и работал нормально.

Я также изменил свой серверный скрипт, чтобы печатать «привет мир» с новой строкой, и это тоже хорошо работало.

Ваш код Flex работает нормально с простым текстом, но что-то явно не связано между отображением данных и самими данными. У меня нет опыта работы с Rails, но мне интересно, выводит ли ваш сервер данные, которые невозможно проанализировать, и проглатываются ли любые исключения.

Вот мое предложение: измените ваш скрипт 'sayhello', чтобы он просто печатал заголовок контента и 'hello world' - все в виде простого текста. Убедитесь, что он выводится в браузере, а затем посмотрите, работает ли он в приложении Flex. Если это так, ваше Rails-приложение, вероятно, выводит контент, который необходимо проанализировать, в отличие от простого ввода текста. Если этого не произойдет, вам потребуется больше отладки.

Кстати, я пробовал это как с выводом простого текста, так и с выводом XML. В обеих попытках мне удалось просмотреть содержимое в поле ввода текста.

1 голос
/ 29 апреля 2009

Я не уверен, так как не вижу XML, на который ответил бы ваш сервис, но я думаю, что это, вероятно, одна из двух вещей:

1) У вас нет элемента для форматирования запроса к вашему сервису. Проверьте это для шаблона ... Справка Flex 3

Это может привести к неправильному выполнению запроса или к тому, что ваша служба захлебнется запросом и никогда не вернет результат. Вам нужно было бы отладить сервис, чтобы увидеть, как он обрабатывает запрос.

2) Ваш сервис возвращает результат XML с пространствами имен. В этом случае вам понадобится Другая справка Flex 3 о том, как обрабатывать результаты XML в формате e4x.

...