ActionScript 3错误无效的JSON解析输入

时间:2016-05-14 22:55:15

标签: php json actionscript-3 flash

我正在尝试通过JSON将数据发送到PHP文件,但是在尝试JSON数据时遇到错误。

我很确定我做得对。有什么建议 ?

这是我的ActionScript 3代码:

var dataToSend:Array = new Array();

var data:Object = new Object(); 
    data.callFunction = "getQuestion";  
    data.numberOfQuestions = "1";   

dataToSend.push(data);

trace(data);

var variables:URLVariables = new URLVariables();    
    variables.data = JSON.stringify(dataToSend);

var url:String = "myurl";

var request:URLRequest = new URLRequest(url);   
    request.method = URLRequestMethod.POST; 
    request.data = variables;    

var loader:URLLoader = new URLLoader(); 
    loader.load(request);   
    loader.addEventListener(Event.COMPLETE, requestComplete);

我的PHP代码:

if $data[ "callfunction" ] = "getQuestion";
{
    echo("Sent");
}

1 个答案:

答案 0 :(得分:0)

您的ActionScript 3代码看起来不错,但您在PHP的代码中遇到了一些问题。

让我们看看。

    1. PHP中的if语句类似于AS3的语句:
<?php
    if( condition )
        instruction;
?>
    1. equality operator==而不是assignment=)。
    1. 当您使用POST方法发送数据时,可以使用PHP的$_POST数组来获取数据。
    1. 然后,当您使用JSON格式发送它时,可以使用PHP端的decode_json()函数对其进行解码。

所以你的PHP代码就像这样:

<?php

    if(isset($_POST['data']))
    {
        $data = $_POST['data'];
        $json_data = json_decode($data);        

        if($json_data[0]->callFunction == "getQuestion")
        {
            echo("Sent");
        }
    }

?>

然后,您可以在AS3 requestComplete函数中获取PHP脚本的响应:

function requestComplete(e:Event): void 
{
    trace(URLLoader(e.target).data);    // gives : Sent, for example
}

...

希望可以提供帮助。