2

json文字列をRESTサーバーに送信し、その代わりに受信します。使用したフラッシュコードは次のとおりです。

        var urlLoader : URLLoader = new URLLoader();
        urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
        urlLoader.addEventListener(Event.COMPLETE, completeHandler);
        urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

        var header1 : URLRequestHeader = new URLRequestHeader("Content-Type", "application/json");
        var header2 : URLRequestHeader = new URLRequestHeader("Accept", "application/json");
        var header3 : URLRequestHeader = new URLRequestHeader("pragma", "no-cache");

        var urlRequest : URLRequest = new URLRequest(url);
        urlRequest.requestHeaders.push(header1);
        urlRequest.requestHeaders.push(header2);
        urlRequest.requestHeaders.push(header3);

        urlRequest.data = session;
        urlRequest.contentType = "application/json";
        urlRequest.method = URLRequestMethod.POST;
        urlLoader.load(urlRequest);

カスタムリクエストヘッダーをリクエストに追加しないと、サーバーはPOSTデータを正しく受信します。カスタムヘッダーを追加すると、POSTが空になります。これを引き起こしている可能性がありますか?

4

1 に答える 1

0

データはPOSTを介して送信され$_POSTますが、Content-Typeを使用しているため、PHPはグローバル配列にデータを入力しませんapplication/json

Content-Typeヘッダーを次のように更新してみてくださいapplication/x-www-form-urlencoded

var header1 : URLRequestHeader = new URLRequestHeader("Content-Type", "application/x-www-form-urlencoded");

また、ここでも、上記のヘッダーをすでに設定していますが、次のようになります。

urlRequest.contentType = "application/x-www-form-urlencoded";
于 2012-10-24T12:41:10.217 に答える