将数据POST到Flex / Flash(mxml)应用程序

时间:2010-02-19 19:47:13

标签: c# asp.net flex flash http

我有Flex应用程序需要根据数据库组过滤用户。根据它们是哪个组,这是一个用于填充swf的config.xml文件。

以下是我如何做到这一点:
1.客户端来到.aspx页面,其中包含需要用户名和密码的表单。
2.在服务器端,我确认用户凭证
3.一旦用户名/密码有效,我将使用html标题中的config.xml文件重定向到mxml文件(post)。

当我需要从http请求获取发布数据时,我的问题就来了。假设我有这段代码:

<mx:Application initialize="init()">

    <mx:Script>
        <![CDATA[
            private function init():void
            {
                // get the post data here
            }

            /* More code here */
        ]]>
    </mx:Script>

</mx:Application>

如何获取init()函数的发布数据。

谢谢。

2 个答案:

答案 0 :(得分:2)

对于那些感兴趣的人,我在Adobe Flex 3 Ressource中心找到了一些资源。

基本上,目前没有使用POST方法传递数据的方法。您可以在swf url(GET方法)的末尾添加参数,如下所示:http://livedocs.adobe.com/flex/3/html/help.html?content=deep_linking_5.html#245869

另一种方法是使用此处显示的flashVars方法将它们嵌入到页面中:http://livedocs.adobe.com/flex/3/html/help.html?content=passingarguments_3.html#229997

如果你仍然想知道,如果你遇到同样的情况,我将如何设法做到这一点。这是我的想法(如果您有不同的愿景,请随时分享):

1.用户登录login.aspx
2.根据用户的凭据,服务器端代码修改index.html文件以在flash对象中嵌入正确的xml文件。
3.使用FlashVars方法,我恢复了xml文件路径并完成了工作!

如果您遇到类似情况并需要帮助,请与我联系。

答案 1 :(得分:0)

我认为不可能获得POST数据,但其他人可能有办法。另一种解决方案是:

  1. 用户登录:login.aspx
  2. 用户定向到Flash内容:content.html嵌入content.swf
  3. Flash从服务器请求config.xml:content.swfconfig.xml.aspx
  4. 发出HTTP请求
  5. 服务器在config.xml.aspx
  6. 中提供用户配置

    init()函数中,您将发出URLLoader请求以获取配置,并且您将在Event.COMPLETE处理程序中进行配置。

    另一种可能性是使用HTTP Cookie - 不是由Flash本机处理的,但您可以通过Javascript访问它们 - 请参阅此CookieUtil类。