我想在用户点击动画片段时在同一个标​​签页上打开一个网页。 我正在使用这种方法:

var url:String = "http://www.google.com";
var request:URLRequest = new URLRequest(url);
try {
  navigateToURL(request);
} catch (e:Error) {
  trace("Error occurred!");
}

但我不知道如何打开它发送POST变量。 那可能吗?

===============>>#1 票数:10 已采纳

是的,可以通过在URLRequest上指定POST作为方法,并使用flash.net.URLVariables作为变量。 这是文档中的示例:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html

package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;

    public class URLRequest_method extends Sprite {

        public function URLRequest_method() {
            var url:String = "http://www.[yourDomain].com/application.jsp";
            var request:URLRequest = new URLRequest(url);

            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "guest";
            request.data = variables;
            request.method = URLRequestMethod.POST;

            navigateToURL(request);
        }
    }
}

===============>>#2 票数:1

关于上面的“子问题”:

由于某种原因,vars是使用GET而不是POST发送的,任何想法?

如果您像我一样偶然发现这个帖子,那么作为GET发送AS3 POST请求发布可能会有所帮助。 基本思路是:不要让request.data变为空/ null。 只需添加“虚拟”或“不显眼”的东西(从服务器的角度来看),如request.data =“\\ r \\ n” ; 这应该可以防止Flash运行时使用“GET”覆盖“POST”请求。 它对我有用(感谢我的服务器端应用程序。足够强大,可以很好地处理以空参数开头的空字符串和空值的查询字符串)。

===============>>#3 票数:0

如果在Flash Player中运行且引用的表单没有正文,则Flash Player会自动使用GET操作,即使该方法设置为URLRequestMethod.POST也是如此。 因此,建议始终包含“虚拟”主体,以确保使用正确的方法。

  ask by DomingoSL translate from so

未解决问题?本站智能推荐: