flexおよび.net 2.0 Webサービス、他のドメインからのアクセスを許可する方法

StackOverflow https://stackoverflow.com/questions/809356

質問

アプリケーションサーバータイプをnoneに設定して、flex builderでプロジェクトを作成しました。

デバッグ時に、サイト上のローカルマシンthatsからWebサービスにアクセスできます http ://mysite.com/ws/ws.aspx?wsdl

フレックスアプリをmysite.com/myapp.htmlにアップロードすると、うまくいきます。

しかし、myapp.mysite.com / myapp.htmlにアップロードすると、Webサービスにアクセスできません。

誰が私に欠けているものを知っていますか?

ありがとう

PS WSはVB.netで作成され、アプリケーションサーバータイプを.netに設定してflexプロジェクトを作成すると、ローカルマシンからWSにアクセスしません

これは私のcrossdomain.xmlファイルです

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

**私の推測では、これはflexの問題ではなく、.netのセキュリティ機能です...設定方法がわかりません。

.NETは、アプリが自身のドメイン外でそれを使用することを許可しません。**

役に立ちましたか?

解決

デフォルトでは、Flexはリモートホスト上のWebサービスへのアクセスを許可しません。これはFlexのセキュリティ機能です。 Flexアプリは myapp.mysite.com にデプロイされているため、 mysite.com のサービスとは異なるホストの下にあります。

crossdomain.xml をmysite.comに追加して、サービスが異なるドメインからのアクセスを許可するかどうかをFlexが確認できます。 crossdomain.xml ファイルは、ドメインのWebルート( mysite.com/crossdomain.xml )に配置する必要があります。次の内容を使用して、デバッグで使用できるようにしました。すべての使用が許可されているため、本番環境での使用を制限する場合は、後で変更する必要があります。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
    "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*" to-ports="*" />
   <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Flexのドキュメント、特に知識ベースの記事

他のヒント

Tamper Dataで行われているリクエストをチェックしてみてください(Firefoxの拡張機能)。アプリがcrossdomain.xmlファイルを見つけるように確認します。パスがオフの場合、それが問題です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top