首页 > 解决方案 > 使用 POST 的独立 Flash 播放器 navigateToURL 失败

问题描述

由于 Flash 插件已达到 EOL,因此仍然使用我的 RIA 的唯一方法是使用 Flash 播放器的独立版本。

在测试迁移时,我注意到以下代码存在问题:

var request:URLRequest = new URLRequest("/utils/function");
request.contentType = "application/x-www-form-urlencoded";
request.method = URLRequestMethod.POST;

var data:URLVariables = new URLVariables();
data.x = encodeURIComponent(1);
data.y = encodeURIComponent(2);
data.z = encodeURIComponent('some value');
request.data = data;

navigateToURL(request, "_blank");

独立版本的 flash (v30.0.0.134) 发出 GET 请求,而不是指示的 POST 方法。浏览器插件 (v32.0.0.238) 作为 POST 请求在新选项卡中正确打开页面。

为什么独立闪存将我的请求转换为 GET?有没有人可以对这个问题有所了解?

标签: actionscript-3apache-flexflash-builderembedded-flashplayer

解决方案


我不知道它是否有资格作为答案,但我们使用它来发出 POST 请求:

        handleService.url='.../something.ashx';
        handleService.method = URLRequestMethod.POST;
        
        var prm:Object=new Object();
        prm.par1 = "asd";
        prm.content=encodedData;
        prm.fileName=FileName;
        handleService.send(prm);

您可以将应用程序打包为 Adob​​e AIR 运行时,而不是使用独立版本的 flash。我们仍然使用一些用 Flex 编写的应用程序,并且没有任何问题。

如果在 Windows 上运行,您可以将其打包为本机运行时并且运行良好。


推荐阅读