0

MJPG から URLStream を取得したいのですが、リリース バージョンでエラー #2048: セキュリティ サンドボックス違反エラーが発生しました。

私がやろうとしていること:

Security.allowDomain("*");
Security.allowInsecureDomain("*");

var stream:URLStream = new URLStream();
//receiving this error event in onStreamSecurityError handler:
//Error #2048: Security sandbox violation: {swf} cannot load data from {url}
stream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onStreamSecurityError);
//load method have no loader context option
stream.load(new URLRequest("http://anydomain.com/mjpg/video.mjpg"));

crossdomain.xml の設定は、アプリケーションが任意のリモート サーバーからストリームをロードできる必要があるため、解決策ではありません。

flash.display.Loader クラスで覚えているように、LoaderContext とアプリケーション ドメインをセットアップしました。その後、flex アプリは任意のドメインからリソースをロードできます。しかし、URLStream をどうすればよいかわかりません。

エラー #2048 の解決策または回避策はありますか?

4

1 に答える 1

5

不可能です。別のドメインへのアクセスをリモートで許可することはできません。許可するのはあなたのものではないからです。allowDomain()関数はそれを行いません。逆の方法で行います。

特定されたドメイン内の SWF ファイルが、allowDomain() 呼び出しを含む SWF ファイル内のオブジェクトと変数にアクセスできるようにします。

SWF がドメイン a.com にあり、その行を追加している場合は、Security.allowDomain("b.com")ドメイン b.com の SWF へのアクセスを SWF に許可します。ドメイン b.com へのアクセスは許可されません。

これに関するより詳細な情報は、のドキュメントで見つけることができますallowDomain()

AJAX でもそうすることができません。つまり、ブラウザでもできません。みんな同じルールで遊んでいます。

これを克服するには、SWF と同じドメインにあるサーバー側スクリプトを介してリクエストをプロキシする必要があります。PHP で curl を使用することも、簡単に見つけられるものを使用することもできます。このビデオでは、その方法と理由について説明します。

于 2013-05-31T12:50:30.633 に答える