1

Firefox 4 で実行されている Flex アプリから FileReference を使用してファイルのアップロードを実行しようとしています。しかし、upload() メソッドを呼び出そうとすると、Filereference は次のような IOError をスローします。

Error #2038: File I/O Error. URL: http://localhost:8080/admin/upload

IOErrorEvent のリスナーを明示的に追加しないと、Flash プレーヤーのポップアップが表示されます。

SecurityError: Error #2000: No active security context.

リクエストはサーバーにヒットさえしません (Java コードにブレークポイントを配置し、HTTPFox を使用して送信される HTTP リクエストを監視することで確認できます)。Google で問題を検索したところ、upload() 呼び出しをタイムアウト/callLater でラップし、sessionId をリクエストに添付しようとする提案が含まれていました (Firefox はアップロード用の新しいスレッドを作成し、適切な Cookie を添付します)。これらのアプローチはどちらもうまくいきませんでした。

この問題は Internet Explorer では発生せず、Firefox でのみ発生します。

誰もこれに遭遇したことがありますか?助言がありますか?助けてくれてありがとう。

編集: SWF と要求されている URL が同じサーバー (localhost:8080) にあることに注意してください。

4

2 に答える 2

0

FileReferenceのドキュメントから:

Flash Playerで実行されているコンテンツ、またはアプリケーションセキュリティサンドボックス外のAdobe AIRで実行されているコンテンツの場合、アップロードおよびダウンロード操作は、独自のドメイン内およびURLポリシーファイルで指定されたドメイン内でのみファイルにアクセスできます。アップロードまたはダウンロードを開始するコンテンツがファイルサーバーと同じドメインからのものでない場合は、ポリシーファイルをファイルサーバーに配置します。

また、これはリリースとして実行されていますか、それともデバッガーで実行されていますか?サーバーアクセスの動作がまったく異なる場合があります。

于 2013-02-21T12:01:55.777 に答える
-3

かなり正常なセキュリティサンドボックスの問題(FirefoxではなくFlash Playerに蔓延しています)。

Webサーバーのルートにクロスドメインファイルが必要です。

于 2011-05-11T16:17:56.137 に答える