为什么这个Flex“ Hello World”应用程序不能获取我的远程HTTPService调用的结果?

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

当我转到 http:// localhost:3000 / hello / sayhello 时,Rails会输出:

hello world!

as HTML。

但是当我运行这个Flex远程“Hello World”时应用程序,我看到一个按钮和一个文本框但它没有获取HTTPService调用输出到我的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>
有帮助吗?

解决方案

我将您的代码复制并粘贴到新的Flex应用程序中,将URL修改为指向我知道的与Flex应用程序一起使用的脚本,并且它运行正常。

我还改变了我的服务器端脚本,用换行符打印'hello world',这也很好。

您的Flex代码似乎与纯文本一起正常工作,但显然数据显示与数据本身之间没有连接。我对Rails没有经验,但我想知道你的服务器是否输出了无法解析的数据,并且任何异常都被吞没了。

这是我的建议:更改你的'sayhello'脚本,以便它只是打印一个内容标题和'hello world' - 所有这些都是纯文本的。确保它在浏览器中输出,然后查看它是否也适用于Flex应用程序。如果是这样,您的Rails应用程序可能正在输出需要解析的内容,而不是简单地设置为文本输入。如果没有,则需要进行更多调试。

BTW,我尝试使用纯文本输出和XML输出。在这两次尝试中,我都能够在文本输入字段中查看内容。

其他提示

我不是肯定的,因为我看不到您的服务会回复的XML,但我认为这可能是以下两种情况之一:

1)您无权格式化服务请求。检查一下这个模板... Flex 3帮助

这可能导致请求永远不会正常发生,或者您的服务会阻塞请求并且永远不会返回结果。您必须调试服务以查看它是如何处理请求的。

2)您的服务正在返回带有名称空间的XML结果。在这种情况下,您需要查看另一个Flex 3帮助关于如何处理e4x格式的XML结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top