0

FlexアプリをGoogleCheckoutと統合しようとしていますが、ローカルマシンで正常に実行されるコードが、サイトでテストするとセキュリティエラーをスローします。

エラーは次のとおりです。

Warning: Failed to load policy file from https://sandbox.google.com/crossdomain.xml

*** Security Sandbox Violation ***
Connection to https://sandbox.google.com/checkout/api/checkout/v2/request/Merchant/12345 halted - not permitted from http://www.mysite.com/demo/cartTest/main.swf
ERROR (flash.events::SecurityErrorEvent)#0
  bubbles = false
  cancelable = false
  currentTarget = (flash.net::URLLoader)#1
    bytesLoaded = 0
    bytesTotal = 0
    data = (null)
    dataFormat = "text"
  eventPhase = 2
  target = (flash.net::URLLoader)#1
  text = "Error #2170: Security sandbox violation: http://www.mysite.com/demo/cartTest/main.swf cannot send HTTP headers to https://sandbox.google.com/checkout/api/checkout/v2/request/Merchant/12345."
  type = "securityError"
Error: Request for resource at https://sandbox.google.com/checkout/api/checkout/v2/request/Merchant/12345 by requestor from http://www.mysite.com/demo/cartTest/main.swf is denied due to lack of policy file permissions.

私が言ったように、それはローカルでうまく動作します。このセキュリティエラーを回避するにはどうすればよいですか?

4

3 に答える 3

1

これを回避するために、Flexでhtmlフォームを作成し、それをページのjsに渡して、ページの空のフォームに追加してから、フォームを送信しました。すべてのUI入力とアクションがswfで発生するように、フォームを非表示にしています。私はそれが好きではありませんが、私はそれと一緒に住んでいます。

于 2010-05-13T14:18:17.250 に答える
0

crossdomain.xmlファイルは、一般的に悪意のある動作を防ぐために設計されたセキュリティ制約です。SWFをローカルで実行する場合、権限は異なります。

別のドメインにリクエストを送信する場合、その別のドメインはcrossdomain.xmlファイルをホストする必要があります。そうでない場合、それは機能しません。たとえば、Amazonはcrossdomain.xmlファイルをホストしています

この以前のStackOverflowスレッドには、いくつかのオプションがあります。

crossdomain.xmlファイルに関するCurtisMorleyの投稿も参照してください。

于 2010-03-30T19:44:43.383 に答える
0

からswfをロードし、 URLhttp:にアクセスしようとしています。https:デフォルトでは、これはブロックされます(エラー#2170)。

それを機能させるには、ターゲットドメイン(Flashからアクセスしようとしているドメイン)に、/crossdomain.xml安全でないアクセスを許可するドメイン(secure = "false")が必要です。ターゲットURLのルート、つまりhttps://sandbox.google.com/crossdomain.xmlcrossdomain.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="master-only"/>
   <allow-access-from domain="*" secure="false"/>
   <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>

セキュアフラグの詳細については、http ://www.adobe.com/devnet /..../ fplayer9_security.html#_Secure_Domain_Listsをご覧ください。

于 2015-01-19T10:58:42.890 に答える