4

Flash でコンパイルしている fla (ActionScript 3.0 を使用) があります。URLRequest と URLLoader を使用して http Web サービスにアクセスしています。

var loader:URLLoader = new URLLoader();     
var request:URLRequest = new URLRequest("http:test.webservice.com");    
try {
   loader.load(request);
} catch (error:Error) {
   trace("Unable to load requested document.");
}

これは問題なく動作しますが、https アドレスにアクセスしようとすると、

httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0]
ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: https://test.webservice.com"]

https Web サービスからデータを取得するにはどうすればよいですか? SWF は SSL で保護されたページでホストする必要がありますか?

4

2 に答える 2

6

フラッシュ デバッグ プレーヤーをインストールすると、おそらくログに次のように表示されます。

** Security Sandbox Violation ***
Connection to https://www.example.com/service/ halted - not permitted from http://www.example.com/your.swf

Error: Request for resource at https://www.example.com/service/ by requestor from http://www.example.com/your.swf is denied due to lack of policy file permissions.

デフォルトでは、http でホストされている swf は https にアクセスできません。別のドメインと見なされます。

Content-Type が text/* またはホワイトリストに登録された別の値であることを確認して、適切な crossdomain.xml ポリシー ファイルを設定する必要があります。さらに、「secure=false」を指定したメタポリシー ファイルが必要になります。これにより、http から https にアクセスできるようになります。

  <allow-access-from domain="www.example.com" secure="false" />

参考文献:

Flash Player 9 および Flash Player 10 でのポリシー ファイルの変更

于 2010-09-30T19:04:37.743 に答える
2

actionscriptドキュメントのクロスドメインポリシーを確認してください。
http://kb2.adobe.com/cps/142/tn_14213.html

安全でないプロトコルを介してホストされている映画へのアクセスを許可する安全なサーバー

HTTPコンテンツがHTTPSコンテンツにアクセスすることを許可することはお勧めできません。この方法は、HTTPSによって提供されるセキュリティを危険にさらす可能性があります。

ただし、レガシーFlashコンテンツがHTTPSサイトのデータへのアクセスを許可される場合があります。Flash Player 7では、これはデフォルトでは許可されなくなりました。HTTP経由で提供されるFlashムービーによるHTTPSデータへのアクセスを許可するには、「allow-access-from」タグでsecure属性を使用し、falseに設定します。

 <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">


        <cross-domain-policy>


        <allow-access-from domain="www.company.com" secure="false" />


        </cross-domain-policy> 

crossdomain.xmlとして保存され、HTTPSサーバーのサイトルートに配置されます。

于 2009-11-16T23:54:34.370 に答える