从AIR应用程序将POST变量发送到浏览器窗口

时间:2011-07-15 16:02:00

标签: flex air flash-builder

我正在构建一个AIR应用程序。基本上,我要做的是使用navigateToUrl()打开浏览器窗口,为其指定一个“名称”,然后使用POST方法将变量发送到新打开的窗口。

编辑:我需要窗口可见,这就是为什么我绝对需要使用navigateToUrl()函数

我已经知道我不能做这样的事情,AIR应用程序将使用GET方法发送变量......

var vars:URLVariables = new URLVariables();
vars.myVar = "Hello my friend";

var req:URLRequest = new URLRequest("http://example.com/my-page.php");
req.method = "POST":
req.data = vars;

navigateToURL(req);

考虑到我必须发送的变量数量(多行文本)我绝对需要使用POST方法发送我的变量,否则Internet Explorer会截断查询字符串...在Firefox和Safari中工作正常但不幸的是,我们将永远有(希望不是!)来处理IE ..

所以我在想这样的事情:

import flash.net.navigateToURL;

private var _timer:Timer;

protected function loadPage():void
{
    var req:URLRequest = new URLRequest("http://example.com/my-page.php");
    navigateToURL(req, "myPageName");

    _timer = new Timer(3000, 1);
    _timer.addEventListener(TimerEvent.TIMER, postVars);
    _timer.start();
}

protected function postVars(event:TimerEvent):void
{
    // I'm looking to send variables using the POST method to "myPageName"
    // and possibly using URLVariables()??

    _timer.stop();
}

任何想法Flex编码器?谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您需要做的是打开您可以控制的页面,然后使用ExternalInterface将值注入隐藏表单,然后在该页面中执行post操作{{ 1}}等等。

这种情况几乎可以立即发生,并且最终用户看起来都非常无缝。