当我转到http://localhost:3000/hello/sayhello时,Rails输出:
hello world!
as HTML。
但是当我运行这个Flex远程“Hello World”应用程序时,我看到一个按钮和一个文本框,但它没有获取HTTPService调用输出到我的Rails URL。有什么想法吗?
<?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>
答案 0 :(得分:1)
我不是肯定的,因为我看不到你的服务会回复的XML,但我认为这可能是两件事之一:
1)您无权格式化服务请求。检查一下这个模板...... Flex 3 Help
这可能导致请求永远不会正确发生,或者您的服务会阻塞请求并且永远不会返回结果。您必须调试服务以查看它是如何处理请求的。
2)您的服务正在返回带有名称空间的XML结果。在这种情况下,您需要查看Another Flex 3 Help有关如何处理e4x格式的XML结果的信息。
答案 1 :(得分:1)
我将您的代码复制并粘贴到新的Flex应用程序中,将URL修改为指向我知道的与Flex应用程序一起使用的脚本,并且它运行正常。
我还改变了我的服务器端脚本,用换行符打印'hello world',这也很好。
您的Flex代码似乎与纯文本一起正常工作,但显然数据显示与数据本身之间没有连接。我对Rails没有经验,但我想知道你的服务器是否输出了无法解析的数据,并且任何异常都被吞没了。
这是我的建议:更改你的'sayhello'脚本,以便它只是打印一个内容标题和'hello world' - 所有这些都是纯文本的。确保它在浏览器中输出,然后查看它是否也适用于Flex应用程序。如果是这样,您的Rails应用程序可能正在输出需要解析的内容,而不是简单地设置为文本输入。如果没有,则需要进行更多调试。
BTW,我尝试使用纯文本输出和XML输出。在这两次尝试中,我都能够在文本输入字段中查看内容。