Ошибка ActionScript 3 Недопустимый вход для анализа JSON

88
8

Я пытаюсь отправить данные в файл PHP через JSON, но я получаю сообщение об ошибке при попытке 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");
}

спросил(а) 2021-01-25T14:41:28+03:00 4 месяца, 3 недели назад
1
Решение
89

Ваш код ActionScript 3 выглядит отлично, но у вас есть некоторые проблемы в вашем PHP.

Посмотрим.

    Оператор if в PHP похож на AS3:

&lt?php
if( condition )
instruction;
?&gt
    Оператор равенства - это == а не присваивание one (=). Когда вы отправляете свои данные с помощью метода POST, вы можете использовать массив PHP $_POST для его получения. Затем, когда вы отправили его в формате JSON, вы можете декодировать его с помощью функции decode_json() на стороне вашего PHP.

Таким образом, ваш PHP-код может быть таким, например:

<?php

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

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

?>

Затем вы можете получить ответ своего PHP-скрипта в своей функции AS3 requestComplete:

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

...

Надеюсь, что это поможет.

ответил(а) 2021-01-25T14:41:28+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема