使用URLRequest + if if语句语法问题获取POST

时间:2015-09-12 19:08:46

标签: actionscript-3 flash flex actionscript

我试图从var url:String中指定的地址获取回复,该地址为0或1.如果回复为1,则必须设置currentState = CallFailed(如下所示)。客户端编译没有错误(使用Adobe Flash Builder 4.6)并且似乎成功到达var url:String,但似乎没有得到响应\和或我的if语句不正确。

的ActionScript:

            // check to see if block.php replies 0 or 1

            var url:String = "https://domain.com/block.php?postid=" + calleeInput.text + "";
            var request:URLRequest = new URLRequest(url);
            var variables:URLVariables = new URLVariables();
            request.data = variables;
            request.method = URLRequestMethod.POST;

            navigateToURL(request);

            if (request.data == 1)
            {   

            // if reply is 1 then cancel the call   
            currentState = CallFailed;
            return;
            }

PHP:

加载block.php时,PHP将回显0或1。它没有以任何格式编码,例如JSON \ AJAX。

2 个答案:

答案 0 :(得分:2)

您似乎想要来自服务器的数据。也许URLLoader类会更好?

        var url:String = "https://domain.com/block.php?postid=" + calleeInput.text + "";
        var request:URLRequest = new URLRequest(url);
        var variables:URLVariables = new URLVariables();
        request.data = variables;
        request.method = URLRequestMethod.POST;

        var loader:URLLoader = new URLLoader();         
        loader.dataFormat = URLLoaderDataFormat.TEXT;
        loader.addEventListener( Event.COMPLETE,
            function( e:Event ) : void
            {
                // your response data will be here
                // you'll have to verify the format
                trace( e.target.data );
            }
        )
        loader.load( request );

在trace语句中放置一个断点并查看e.target.data的内容,然后从那里开始

答案 1 :(得分:2)

navigateToURL()的目的是打开webbrowser,如文档中所述:

  

打开或替换包含Flash Player容器(通常是浏览器)的应用程序中的窗口。在Adobe AIR中,该函数在默认系统Web浏览器中打开URL

为了执行请求(不打开浏览器,只打开HTTP通信),您应该使用URLLoader

  

URLLoader类将URL中的数据作为文本,二进制数据或URL编码变量下载。

相关说明:您的逻辑无效。对服务器的调用是异步的。在推理结果之前,您必须等待返回响应。

URLLoader类会调度一些事件,帮助您决定何时返回请求的结果或是否存在问题。