0

box.net との間でファイルをアップロード/ダウンロードするアプリケーションがあります。アプリケーションはサーバーにデプロイされていない場合は正常に動作しますが、Google App Engine にデプロイすると次のエラーが発生します。

エラー #2044: 未処理の securityError:。text=エラー #2048: セキュリティ サンドボックス違反: http://somexyz.appspot.com/xyzsample.swfはhttp://box.net/api/1.0/download/abcdef/123456からデータを読み込めません。

以下のコード行を as3 に含めました。

Security.allowDomain("*");

crossdomain.xml をアプリのルート フォルダー (Google App Engine) に配置し、somexyz.appspot.com/crossdomain.xmlを使用してファイルにアクセスできます。

crossdomain.xml には以下の行が含まれています

<?xml version="1.0"?> 

<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"> 

<cross-domain-policy>

   <site-control permitted-cross-domain-policies="all"/>

   <allow-access-from domain="*" to-ports="*"/>

   <allow-http-request-headers-from domain="*" headers="*"/>

   <allow-http-request-headers-from domain="*"/>

</cross-domain-policy>

Tomcatを使用しようとしたときにも同じ問題が発生しています。

4

1 に答える 1

5

box.net からロードしている場合は、http://box.net/crossdomain.xml

そして、以下を読むことができます:

<!--
Box has recently changed its crossdomain policy for API calls made from Flash.
To continue using Box API, please add the following line to the code of your Flash
application:
- AS2: System.security.loadPolicyFile("http://www.box.net/api/crossdomain.xml");
- AS3: Security.loadPolicyFile("http://www.box.net/api/crossdomain.xml");
-->

アップデート

正しく追加していることを確認してください:

Security.loadPolicyFile("http://www.box.net/api/crossdomain.xml")

そしてロード時:

*.load('http://www.box.net/api/1.0/download/abcdef/123456');

サーバーへのパスが同じになるように: http://www.box.net/

フラッシュの場合、http ://www.box.net/とhttp://box.net/は 2 つの異なるドメイン名です。

于 2012-08-16T07:18:40.107 に答える