Internet Explorer (6,7)
Flex( ) が を介してHTTPService
ロードされている場合には、既知の問題があります。その場合、Flash Player はスローします。XML
SSL
Error #2032: Stream Error
Microsoftなどのアドバイスによると、この問題を解決するには、サーバー側で "Cache-Control: no-store" を設定する必要があります。
残念ながら、アプリケーションのバックエンドにアクセスできないため、Flex で解決する必要があります。
私の目標は、実行時に構成を含むxmlファイルをロードすることです。
リクエストのカスタム ヘッダーGET
は Flex では許可されていません (間違っている場合はお知らせください)。ということで、リクエストで目的を達成することにしたPOST
ところ、意外にもうまくいきました。
これが私が持ってきたコードです:
var httpService:HTTPService = new HTTPService();
httpService.url = 'config.xml';
httpService.method = 'POST';
httpService.requestTimeout = 10;
httpService.contentType = "application/xml";
httpService.headers["Cache-Control"] = "no-store";
httpService.resultFormat = "e4x";
var localResponder:Responder = new Responder(
function(event:ResultEvent):void {
//event.result returns the required xml configuration
},
function(event:FaultEvent):void {
});
var token:AsyncToken = httpService.send({});
token.addResponder(localResponder);
私の質問は次のとおりです。リクエストPOST
の代わりにリクエストが送信された場合、副作用はありGET
ますか?
アップデート:
GET リクエストからヘッダーが取り除かれていることを証明するために、@ Reboog711 によって提供されたコードを使用して、小さなアプリケーションを作成しました。コードは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import mx.rpc.http.HTTPService;
protected function sendHTTPRequest(event:MouseEvent):void
{
var httpService:HTTPService = new HTTPService();
httpService.url = 'xml.xml';
var headerData : Object = new Object();
headerData['Cache-Control'] = 'no-store';
httpService.headers = headerData;
httpService.send();
}
]]>
</fx:Script>
<s:Button label="SEND HTTP REQUEST"
horizontalCenter="0" verticalCenter="0" click="sendHTTPRequest(event)"/>
</s:Application>
そして、その HTTP リクエストを送信したときに Charles アプリケーションに表示されるのは次のとおりです。
ここで自分でテストできます。さらに、私が自分の問題を解決しようとしている間に、カスタム ヘッダーを使用して GET 要求を送信できないという多くの証拠を見てきました。こちらをご覧ください。
ありがとう!