3

私は最初の AIR アプリ (PHP/Javascript から移行) を開発しており、アプリからサーバー上の PHP スクリプトにデータを送り返したい段階にあります。私は次のものを持っています:

var url:String = "PHP URL HERE";
var request:URLRequest = new URLRequest(url);

var requestVars:URLVariables = new URLVariables();
requestVars.test = "1234";

request.data = requestVars;
request.method = URLRequestMethod.POST;
request.contentType = "application/xml;charset=utf-8";

var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, processSERPS, false, 0, true);
urlLoader.load(request);

サーバー側の PHP スクリプトにはもともと何か他のものがありましたが、デバッグのために REQUEST 配列をダンプするように変更しました。

上記のコードでは、何も返されません。

Array
(
)

しかし、リクエスト メソッドを Get に変更すると、次のようになります。

request.method = URLRequestMethod.GET;

私は受け取ります:

Array
(
    [test] => 1234
)

これは、コードが正しいことを示しています。何らかの理由で投稿パラメーターを送信していないだけです。

GET 変数を使用するようにコードを変更するだけですが、残念ながら、送信する必要があるデータが大きすぎるため、POST が必要です。

どんな助けでも大歓迎です!

4

1 に答える 1

3

URLRequest.contentTypeの場合:

data プロパティの値が URLVariables オブジェクトの場合、contentType の値は application/x-www-form-urlencoded である必要があります。

これはデフォルト値なので、割り当てを削除するだけで十分です。

于 2013-02-21T23:34:55.647 に答える