Forms 将Flex URL请求和navigateToURL表单模拟重新编码到Royale JS

Forms 将Flex URL请求和navigateToURL表单模拟重新编码到Royale JS,forms,urlrequest,apache-royale,navigatetourl,Forms,Urlrequest,Apache Royale,Navigatetourl,我有一大堆需要转换的Flex页面,以摆脱flash播放器,但我无法看到如何仅使用javascript复制此代码 Flex代码收集数据并以POST的形式发送到另一个框架(名为FrameData)中的Cold Fusion页面。Cold Fusion从表单变量(FORM.mydata1、FORM.mydata2等)访问数据 如何在Royale中模拟此构造?还有其他方法吗?为URLRequest等效代码: var u:URLRequest=新的URLRequest(“http://domain.foo

我有一大堆需要转换的Flex页面,以摆脱flash播放器,但我无法看到如何仅使用javascript复制此代码

Flex代码收集数据并以POST的形式发送到另一个框架(名为FrameData)中的Cold Fusion页面。Cold Fusion从表单变量(FORM.mydata1、FORM.mydata2等)访问数据


如何在Royale中模拟此构造?还有其他方法吗?

URLRequest
等效代码:

var u:URLRequest=新的URLRequest(“http://domain.foo");
导航URL(u,“_空白”);
在Apache Royale中是
浏览器窗口

import org.apache.royale.core.BrowserWindow;
变量u:String=”http://domain.foo";
浏览器窗口。打开(u,“_blank”);
要传递变量,需要通过
GET
方法:
“http://domain.foo?variable=“+键

要使用
POST
方法,请改用
HTTPService
class from
Network
SWC:

import org.apache.royale.net.HTTPConstants;
导入org.apache.royale.net.HTTPService;
导入org.apache.royale.net.URLVariables;
//添加要发送的变量
var urlVars:URLVariables=新的URLVariables();
urlVars.set(“变量”,键);
//创建httpservice实例
var服务:HTTPService=newhttpservice();
service.url=”http://domain.foo";
service.method=HTTPConstants.POST;
服务。addEventListener(“完成”,结果回调);
addEventListener(“ioError”,faultCallback);
//添加变量
service.contentData=urlVars;
//触发服务
service.send();
或者,如果您需要处理CORS,您可以将
CORSCredentialsBead
珠添加到
HTTPService

service.addBead(新的CORSCredentialsBead(true));

(注意:代码未经测试,请报告是否一切正常,以便我们可以改进此响应和代码片段,谢谢)

如何将HTTPService请求发送到帧?抱歉,我不理解“发送到帧”的含义。在代码中,我使用NaviagateTour将URLRequest变量发送到命名帧。我知道BrowserWindow可以做到这一点,但我也需要变量。我需要知道的是如何将HTTPService定向到名为frameHTTPService的服务器。HTTPService不能作为navigateToURL/BrowserWindow工作。HTTPService有一个“complete”事件(在响应代码中定义),因此当您收到响应时,可以在calback函数中处理结果,并对其执行任何操作。如果您的Royale应用程序中有一个
js:IFrame
(例如),您可以传递结果。但也许你想做的是在新的Royale页面中添加HTTPService,然后从那里调用,然后在里面进行处理。我们使用HTML框架和目标框架中的冷融合页面来显示数据。我很惊讶没有办法发送表单数据。您知道是否可以修改BrowserWindow以传递表单数据(不能使用url字符串变量)或其他方法将数据传递到目标?
var RequestSite:URLRequest;

OutputPageValues.OutputType = 5;
OutputPageValues.mydata1 = "2";
OutputPageValues.mydata2 = "test";

RequestSite = new URLRequest("pageurl.cfm"));
RequestSite.data = OutputPageValues;
RequestSite.method = URLRequestMethod.POST;

navigateToURL(RequestSite, 'FrameData');