【问题标题】:ActionScript 3 error Invalid JSON parse inputActionScript 3 错误 JSON 解析输入无效
【发布时间】:2016-09-10 23:47:19
【问题描述】:

我正在尝试通过 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");
}

【问题讨论】:

  • 你是在 php 端还是在 As3 中得到错误? php 文件长什么样子?它期待什么 json?
  • 感谢您的回复,在 php 端没有出现任何错误,就像 3.我已经添加了我的 php 代码。你介意看看吗?
  • 我对php一无所知,无法对此发表评论。您确定错误 JSON parse 输入是由上面的 As3 代码引起的吗?您没有在发布的代码中调用 JSON.parse()

标签: php json actionscript-3 flash


【解决方案1】:

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

让我们看看。

    1. PHP 中的if 语句类似于AS3 中的语句:
&lt?php 如果(条件) 操作说明; ?&gt
    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
}

...

希望能有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多