19.6.发送数据给服务端脚本

问题
我想发送数据给服务端脚本
解决办法
创建一个包含数据的URLRequest实例,并用flash.net.sendToURL( )方法传递给服务端脚本,如果想在新的浏览器窗口中打开可使用flash.net.navigateToURL( )方法,如果想知道执行结果,可使用URLLoader.load( )方法。
讨论
如果不用处理结果,最好是用flash.net.sendToUrl( )方法发送数据,例如发送一个web表单数据,而服务端脚本处理后不用返回结果显示出来。但是sendToURL( )方法也就不会返回数据是否收到的确认消息了,因此在实际应用中并不很实用。如果只是想显示一个信息如"Thank you for submitting the form,"确认信息,表示服务端已成功收到,可使用URLLoader.load( )方法,3.12节19.7节.都讨论过这个方法。

通过sendToUrl传递给服务端的URLRequest实例包含传递的数据以及传输方式,如果data属性设置为URLVariables实例,则发送名称/值对到服务器,也可以是flash.util.ByteArray,通过HTTPPOST 方式传递二进制数据到服务器, 或者是String 类型的数据作为XML-RPC ( 看http://www.xmlrpc.com)请求发送到服务器。下面的代码演示:
+展开
-ActionScript
function sendData( ):void {
// Create a request that sends data to the process.cfm page
var request:URLRequest = new URLRequest( "process.cfm" );
// Create some variables to send, someText and someNumber.
var variables:URLVariables = new URLVariables( );
variables.someText = "Some text to send";
variables.someNumber = 26.2;
// Set the data to be sent to the variables, created earlier
request.data = variables;
// Send the data to the script for processing
sendToURL( request );
}

传递给URLRequest的URL既可以是绝对地址也可以是相对地址,这可以通过Flash播放器安全沙漏进行管理,有关安全方面看第3.12节。
+展开
-ActionScript
// 设置url属性为绝对地址
request.url = "http://www.darronschall.com/cgi-bin/submitVars.cgi";
// 设置为相对于swf 文件的地址
request.url = "cgi-bin/submitVars.cgi";

通过sendToURL( )方法发送的数据被服务器处理后,服务器返回的信息会被Flash播放器忽略掉,要想发送数据且打开指定的浏览器可使用navigateToURL( )方法,这个方法也sendToURL( )方法几乎一样,只是多了个参数,如果设为_blank即会在新的窗口显示响应结果,还可设置为_self 或_parent 。
+展开
-ActionScript
// 在新的窗口中发送数据
navigateToURL( request, "_blank" );

如果想接收服务器返回的结果,可使用URLLoader.load( )方法(看3.12节19.7节).
默认情况下,使用sendToURL( ) 或navigateToURL( )方法,数据都是通过HTTP POST方法传输的,URLRequest的method属性指定数据传输的方式,如URLRequestMethod.GET指HTTP GET 和URLRequestMethod.POST指HTTP POST。
+展开
-ActionScript
var request:URLRequest = new URLRequest( "cgi-bin/submit.cgi" );
// 创建发送的变量
var variables:URLVariables = new URLVariables( );
variables.someText = "Post me!";
request.data = variables;
// 设置传输方式HTTP POST
request.method = URLRequestMethod.POST;
// Send the request and open the response in a new window
navigateToURL( request, "_blank" );

加支付宝好友偷能量挖...


评论(0)网络
阅读(100)喜欢(0)flash/flex/fcs/AIR