我有一堆Flex页面需要转换,以摆脱flash播放器,并且无法看到如何仅使用javascript复制此代码。
Flex代码收集数据并将其以POST形式发送到另一个框架(名为FrameData)中的冷融合页面。冷融合从表单变量(FORM.mydata1、FORM.mydata2等)访问数据。
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');
我如何在Royale中模拟这个结构?有没有其他方法可以做到这一点?
发布于 2020-08-24 18:04:15
URLRequest
的等价代码
var u:URLRequest = new URLRequest("http://domain.foo");
navigateToURL(u,"_blank");
在Apache中,Royale是BrowserWindow
import org.apache.royale.core.BrowserWindow;
var u:String = "http://domain.foo";
BrowserWindow.open(u, "_blank");
要传递变量,需要通过GET
方法:"http://domain.foo?variable=" + key
。
要使用POST
方法,请改用Network
SWC中的HTTPService
类:
import org.apache.royale.net.HTTPConstants;
import org.apache.royale.net.HTTPService;
import org.apache.royale.net.URLVariables;
// add the variables to send
var urlVars:URLVariables = new URLVariables();
urlVars.set("variable", key);
// create the httpservice instance
var service:HTTPService = new HTTPService();
service.url = "http://domain.foo";
service.method = HTTPConstants.POST;
service.addEventListener("complete", resultCallback);
service.addEventListener("ioError", faultCallback);
// add the variables
service.contentData = urlVars;
// trigger the service
service.send();
如果需要处理CORS,也可以将CORSCredentialsBead
bead添加到HTTPService
中
service.addBead(new CORSCredentialsBead(true));
(注:代码未经测试,请报告是否一切正常,以便我们可以改进此响应和代码片段,谢谢)
https://stackoverflow.com/questions/63546819
复制相似问题