0

サーバーからデータを取得しようとしていますが、RemoteObject を使用してそれを達成しました。localhost でアプリケーションを実行するとうまく動作しますが、サーバーで使用すると Channel.Security.Error(URL にアクセスする際のセキュリティ エラー) が発生します。

サーバー側のログには、 cross domain に関する言及があります。77.127.194.4 - - [2008 年 10 月 23 日 21:15:11] "GET /crossdomain.xml HTTP/1.1" 501

誰も同じ問題に遭遇しましたか? 何か案が ?

4

2 に答える 2

1

crossdomain.xml(データをフェッチする場所)にこれを追加しようとしましたか?

<?xml version="1.0"?>
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.YOUR_FRAME_WORK_CROSSDOMAIN_POLICY.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
        <site-control permitted-cross-domain-policies="all"/>
        <allow-access-from domain="*.YOUR_SITE_GOES_HERE.com" secure="false" />
        <allow-access-from domain="*.YOUR_SITE_GOES_HERE.com" secure="false" />
    </cross-domain-policy>

capslockの内容は、フレームワークに合わせて変更する必要があります。たとえば、マクロメディアフラッシュで使用しているものからコピーしました。「www.YOUR_FRAME_WORK_CROSSDOMAIN_POLICY.com/...」の代わりに、通常は「www.macromedia.com/xml/dtds/...」があります。

よくわかりませんが、調査してみてください。おそらくあなたの問題です。クロスドメインの場合、通常、サーバー側に追加する必要があります。サーバー側では、他のサイトがそれを取得するためのアクセス許可を取得します。

于 2008-10-24T12:05:01.887 に答える
1

私は解決策を見つけました。crossdomain.xml ファイルについては正しいのですが、残念ながら、Python SimpleXMLRPCServer ライブラリはデフォルトで GET メソッドをサポートしていないため、これを実装する必要があります。

from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

class ExtendedXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
  def do_GET(self):
    #only allow a request for the crossdomain file
    if self.path != '/crossdomain.xml':
      self.send_response(403)
      self.log_request(403)
      return

    #open the crossdomain file and read its contents
    response = open('crossdomain.xml', 'r').read()

    #write the data to the socket along with valid HTTP headers
    self.send_response(200)
    self.send_header("Content-type", "text/xml")
    self.send_header("Content-length", str(len(response)))
    self.end_headers()
    self.wfile.write(response)
    self.log_request(200)
于 2008-10-25T14:01:09.000 に答える