2

(ActionScript3) こんにちは。サード パーティの Web サイトを介して表示したときに URLRequest が失敗する理由を突き止めようとしています。理想的には、以下のコードですべてのエラーを指摘できますが、同様のことがうまく機能するので問題ないと思います。

理想の次は URLRequest のエラー処理ですが、URLRequest が time.php から情報を取得していない理由を知るにはどうすればよいですか? タイムライン上のテキストボックスに出力するだけでも(テスト環境から実行するとすべて正常に動作します)

どうもありがとうクレイグ

シナリオ:

  • domain.com (サーバー 1): file.swf は URLRequest を使用して domain.com/time.php?a=b をロードします (したがって、PHP と SWF は両方とも同じドメインとサーバーでホストされます)

  • example.com (サーバー 2): file.swf を埋め込んだ PHP ページ (URLRequests time.php)

結果:

  • ブラウザ経由で file.swf に直接アクセスすると、time.php からデータが読み込まれます。

  • file.swf が埋め込まれているページを表示すると、Server 2 で読み込みに失敗します


ファイル.swf

var loaderNameHolder;
var loaderNameHolderLoader:URLLoader = new URLLoader();
var loaderNameHolderURLRqst:URLRequest = new URLRequest('http://domain.com/time.php?a=b');
loaderNameHolderLoader.addEventListener(Event.COMPLETE, loaderNameHolderURLFunc);
loaderNameHolderLoader.load(loaderNameHolderURLRqst);
function loaderNameHolderURLFunc(e:Event):void{
    loaderNameHolder = loaderNameHolderLoader.data
    gotoAndStop(loaderNameHolder);
}

安全

  • ドメインのルートフォルダーにクロスドメイン XML が配置されていますが、違いはないようです (または正しく参照/使用されていません)。
4

3 に答える 3

2

クロスドメイン ファイルが配置されているとのことですが、セキュリティ上の問題のように聞こえます。

Charles ( http://www.charlesproxy.com/ ) などのツールで http 呼び出しを確認しましたか? これは間違いなく、このような問題をデバッグする最良の方法です。

于 2013-04-03T11:11:04.190 に答える
1

上記のヒントをお寄せいただきありがとうございます。それらは保持するための優れたリソースになります。

実際の問題は、要求された URL に「www」が含まれていなかったことです (SWF が WWW に埋め込まれているため、「外部」ドメインから来ていると思います。私自身のセキュリティで www.domain.com が必要だと思います)。 XML)。

クレイグ

于 2013-04-04T09:48:32.330 に答える
0

このコードを追加してみてください

Security.allowDomain("*");
Security.loadPolicyFile("http://domain.com/crossdomain.xml");

ここにあるリンクを使用して crossdomain.xml について読んでください: https://stackoverflow.com/a/9728845/2234089

于 2013-04-03T11:15:16.707 に答える