3

たとえば、奇妙な状況があります...これは次のとおりです。

あるサーバーでオーディオを録音し、別のサーバーにアップロードする Flash アプリケーション。ご想像のとおり、セキュリティ サンドボックス違反の例外/エラーに直面し、サーバーのルートに crossdomain.xml を追加する必要があるようです。わかりましたが、ダウンロードされなかったか、ダウンロード プロセスが中断されたようで、このエラーが発生し続けます。

誰かが私の間違いを指摘してくれませんか?私は自分が間違っていることを本当に理解していません。

オーディオをアップロードしようとしたときに表示されるエラーは次のとおりです。

Error #2044: Unhandled securityError:. text=Error #2170: Security sandbox 
violation: https://ip1/bar/foo cannot send HTTP headers to https://ip2/foo/bar

これが私の crossdomain.xml (テスト バージョン) の内容です。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/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="*" />
</cross-domain-policy>

ps そして、はい、アドレス経由で crossdomain.xml にアクセスできhttps://ip2/crossdomain.xmlます。

追加情報

私はフラッシュ ログを有効にしましたが、フラッシュが crossdomain.xml を取得できないことを知って驚きましたが、ブラウザー経由でアクセスできます (https であるという条項があり、証明書の問題があることなどを示しています)。

Warning: Failed to load policy file from https://192.168.22.103/crossdomain.xml  

追加情報パート 2

crossdomain.xml に手動でアクセスしようとした場合にブラウザに表示される警告は次のとおりです。 ここに画像の説明を入力

crossdomain.xml をダウンロードするリクエストは次のようになりますhttp status code = 0
ここに画像の説明を入力

4

4 に答える 4

1

最後に、私は問題が何であるかを知りました。Internet Explorer 用にこのアプリケーションを開発したとき、それを機能させるにはいくつかのトリッキーな点がありました。この図でわかるように、これ「この Web サイトによって提示されたセキュリティ証明書は、別の Web サイトのアドレスに対して発行されました」という警告があります。問題は、Internet Explorer がデフォルトで常にこれについてユーザーに警告することです。これは、Flash Player が Flash ポリシー ファイル (crossdomain.xml) をダウンロードするのを妨げる問題です。この動作をオーバーライドするには、次のことを行う必要があります。

  1. Internet Explorer の設定に移動します。歯車アイコン -> [インターネット オプション] をクリックします。
  2. 詳細タブに移動
  3. 設定リストの最後までスクロールし、「証明書アドレスの不一致について警告する」のチェックを外します。
  4. 重要: IE のすべてのインスタンスを強制終了します (存在する場合は、タスク マネージャーで確認してください)。
  5. これらの手順の後、flash で crossdomain.xml のフェッチに問題が発生することはありません。

これが、他のフレックス開発者がそのようなタイプの問題を回避するのに役立つことを本当に願っています. 乾杯!

于 2013-09-06T09:02:23.603 に答える