5

Yahoo! を取得できません。実行するアプリケーション プラットフォーム ポリシー ファイルが任意のドメインからの要求を受け入れているにもかかわらず、アクセスが拒否され続けます。

OK: Policy file accepted: http://social.yahooapis.com/crossdomain.xml
Error: Request for resource at http://social.yahooapis.com/v1/user/<user id>/profile?oauth_signature_method=HMAC-SHA1&lang=en-US&oauth_consumer_key=<key>&oauth_token=<long ass token>&oauth_version=1.0&format=json&oauth_nonce=<blah blah>&oauth_timestamp=1262846353&region=US&oauth_signature=<foo bar> by requestor from http://<my domain>/YOSSimple.swf is denied due to lack of policy file permissions.

URL は機能しますが、キーなどがあるため、一部を編集しました。


私がやろうとしていることへのリンク

http://developer.yahoo.com/flash/yos/
http://developer.yahoo.com/flash/yos/examples/simple/YOSSimple.fla

YOSSimple は実際に適切に URL を作成します。ブラウザに URL を入力すると、プロファイルに関する情報を含むファイルをダウンロードするかどうかを尋ねられるからです。

しかし、それはFlashで開かないだけです。

4

4 に答える 4

2

ポリシーファイルを自動的にロードしていないと思います。使ってみるべきです Security.loadPolicyFile("http://social.yahooapis.com/crossdomain.xml");

どのファイルがロードされているかを正確に監視できる webproxy がインストールされていますか? 私のお気に入りはCharlesですが、 Httpfoxのような無料のFFプラグインもあります

編集:何がうまくいかないのか知っていると思います。yahoo の swf があなたの swf にアクセスしようとしていますが、正しい権限がありません。試してみませんか

Security.allowDomain( 'http://social.yahooapis.com/' );
于 2010-01-11T09:09:31.117 に答える
0

上記のWebプロキシの例を変更して、次のように複数のオプションをサポートします。

$sOptions = "";

foreach($_GET as $sIndex => $sValue) {
  if ($sIndex == 'url') {
    $url = $sValue;
  } 
  else {
    if (strlen($sIndex) > 0) {
      $sOptions .= "&" . $sIndex;
    }
    if (strlen($sValue) > 0) {
      $sOptions .= "=" . $sValue;
    }
  }
}

$url .= $sOptions;

$session = curl_init($url); // Open the Curl session
于 2010-11-24T19:47:00.203 に答える
0

シンプルな WebProxy はこれを修正します:

<?php
    // PHP Proxy
    // Loads a XML from any location. Used with Flash/Flex apps to bypass security restrictions
    // usage: proxy.php?url=http://mysite.com/myxml.xml

    $session = curl_init($_GET['url']);                    // Open the Curl session
    curl_setopt($session, CURLOPT_HEADER, false);          // Don't return HTTP headers
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true);   // Do return the contents of the call
    $xml = curl_exec($session);                            // Make the call
    header("Content-Type: text/xml");                  // Set the content type appropriately
    echo $xml;        // Spit out the xml
    curl_close($session); // And close the session
?>
于 2010-11-08T13:04:35.080 に答える
0

http://www.ieinspector.com/httpanalyzer/

HTTP アナライザーを使用して何が起こっているかを確認しますか?

http://wwwが一致していないことも確認してください。http:// を使用するのは、Flash がそれらを異なるドメインとして扱うためです。

また、マシンでローカルにコードを実行していますか。ローカルのセキュリティ設定である可能性があります

于 2010-01-15T15:15:20.813 に答える