3

想象一下,我在 Flash 应用程序中有一个表单,其中包含两个字段 input1 和 input2。当用户完成填写此表单时,它会转到一个 php 页面。目前,我正在使用该$_GET方法发送数据。
像这样:

var request:URLRequest;
request = new URLRequest("http://site.com/page.php?data1="+input1.text+"&data2="+input2.text);
navigateToURL(request);

在php代码中:

$_GET["data1"];
$_GET["data2"];

但是这样一来,信息就保留在 URL 中。我怎样才能通过这个发送$_POST

4

1 回答 1

5

在 AS 3 中,用于指定请求的URLRequest类有一个方法属性,可用于设置提交方法的 HTTP 选项,您需要使用URLRequestMethod常量POST将其设置为 POST 以获得完美的形式,或者您可以使用“POST”字符串。

您可以在snipplr上找到一个全面的示例

简而言之:

var url:String = "http://localhost/myPostReceiver.php";
var request:URLRequest = new URLRequest(url);
var requestVars:URLVariables = new URLVariables();
requestVars.foo = "bar";
// ... fill in your data
request.data = requestVars;
request.method = URLRequestMethod.POST;
// after this load your url with an UrlLoader or navigateToUrl

使用 Adob​​e Air 时,您需要使用URLLoader类而不是navigateToURL()因为以下花絮:

参数 request:URLRequest — 一个 URLRequest 对象,它指定要导航到的 URL。

对于在 Adob​​e AIR 中运行的内容,在使用 navigateToURL() 函数时,运行时会将使用 POST 方法(其方法属性设置为 URLRequestMethod.POST 的方法)的 URLRequest 视为使用 GET 方法

基本上只要您想正确使用 POST 设置方法,navigateToUrl的文档也表明:

接下来在 php 中,您将收到超全局$_POST数组中的变量,您可以在其中访问它:

<?php
$foo = $_POST['foo'];
/* $foo now contains 'bar'
   assignment to another value is not necessary to use $_POST['foo'] 
   in any function or statement
*/
于 2012-06-24T00:08:03.687 回答