使用navigateToURL通过POST方式向php页面发送数据

3

假设我有一个闪存应用程序中的表单,其中包含两个字段: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发送它呢?


1
你好CEAFDC,你目前尝试了什么?Stack Overflow社区可能能够帮助你解决问题,但是没有具体的数据,这不是一个“写代码给我看”的网站。请通过分享你目前正在使用的代码、可能的样本数据和任何可能遇到的错误来帮助我们帮助你。调整你的问题以包含这些内容,你一定会得到有用的答案。感谢你的考虑。 :) - Harald Brinkhof
在这里得到帮助并不是一种“交换条件”,但这将确保您的问题得到答案,人们可以帮助您。我们无法查看您的代码,错误有时可能相当深奥或具有欺骗性。帮助我们帮助您的最佳方法是尽可能具体地描述错误和您尝试的选项/代码。感谢您的考虑。 - Harald Brinkhof
嘿@Gonzo,你有没有办法访问这样的URL但不跳转到它? - Shruti Sharma
1个回答

5
在AS 3中,您使用URLRequest类来指定请求,该类具有method属性,可用于设置提交方法的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

当使用Adobe Air时,您需要使用URLLoader类而不是navigateToURL(),因为有以下细节:
参数 请求:URLRequest-指定要导航到的URL的URLRequest对象。
对于在Adobe AIR中运行的内容,当使用navigateToURL()函数时,运行时会将使用POST方法的URLRequest(将其方法属性设置为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
*/

这在AIR中仍然适用吗?我需要在打开浏览器时发送POST数据,而我正在使用AIR。 - 1.21 gigawatts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接