Отправка JSON на PHP из Actionscript 3 - PullRequest
0 голосов
/ 02 марта 2020

Этот html код работает, чтобы делать то, что я хочу ie отправить 'abc_request' с JSON ключом 1234567. (кстати, я изменил ключ):

<form action="index.php" method="post"><textarea name="abc_request" class="form-control" >{"key":"1234567"}</textarea><button class="btn btn-primary" type="submit">POST</button></form>

Как мне это сделать с Actionscript3;

Итак: я использую var urlLoader: URLLoader; У меня есть urlRequest.method = URLRequestMethod.POST; работая он отправляет запрос на правильную страницу. php Я просто не могу получить правильный формат данных: лучший результат, который я могу получить, это:

var urlLoader:URLLoader;
var urlVariables:URLVariables = new URLVariables();
urlVariables.abc_request = {"key":"1234567"};
var url:String = "index.php";
var urlRequest:URLRequest = new URLRequest(url);
urlRequest.method = URLRequestMethod.POST;
urlRequest.data =urlVariables;
urlLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.load(urlRequest);

Это дает мне HTTPStatusEvent of 200 и эхо-запрос Bad Request со страницы php, означающий, что он получает 'abc_request', но без ключа.

Любая помощь приветствуется.

Tommy Banana

По намного ниже

Я также пытался:

var abc_request:Object = {"key":"1234567"};
var jsonString:String = JSON.stringify(abc_request);
urlRequest.data = jsonString;
urlLoader.load(urlRequest);

И

var abc_request:Object = {"abc_request::{"key":"1234567"}};
var jsonString:String = JSON.stringify(abc_request);
urlRequest.data = jsonString;
urlLoader.load(urlRequest);
urlRequest.data =urlVariables;
urlVariables.abc_request = {"key":"1234567"};
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.load(urlRequest);

Затем пытался:

var keyDEF:Object ={"key":"1234567"}
var jsonKey:String = JSON.stringify(keyDEF);
urlRequest.data =urlVariables;
urlVariables.abc_request = jsonKey;
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.load(urlRequest);

Пробовал все это; получить ответ «Нет запроса» (имеется в виду, что abc_request не отправлен) или неверный запрос (имеется в виду, что после получения сообщения «abc_request» ключ не получен.

1 Ответ

0 голосов
/ 13 марта 2020

Так что я наконец-то все заработал:

Вот код, который работает:

AS3

//the URLLoader
var urlLoader:URLLoader;

//holds the variables to send to PHP
var urlVariables:URLVariables = new URLVariables();

// create JSON String


 var jsonString:String = JSON.stringify({"key":"1234567"});


//let's add some variables to send to PHP

urlVariables.abc_request = jsonString;




//holds the url address

var url:String = "http://ourserver/local/rest/index.php";

//holds a URLRequest
var urlRequest:URLRequest = new URLRequest(url);

//specify post as the method to send
urlRequest.method = URLRequestMethod.POST;

//set the variables to be used for the data to send
urlRequest.data =urlVariables;


//initialize the urlLoader
urlLoader = new URLLoader();

//specify to use variables as the data format
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;


//make the actual request to the php page now
urlLoader.load(urlRequest);

//setup listeners for handling the onComplete and error handlers
urlLoader.addEventListener(Event.COMPLETE, onCompleteHandler);
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onErrorHandler);
urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);


function onCompleteHandler(e:Event):void {

            var arrayReceived:Object = JSON.parse(e.target.data);
           result2_txt.text = "did this 8" + e.target.data;
           result2_txt.appendText(arrayReceived.toString());
        }

и php закончился этим:

echo json_encode($ourdataarray);

надеюсь, что это поможет, если кто-то смотрит. Спасибо за все предложения!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...