Question

J'ai créé un projet dans Flex Builder avec le type de serveur d'applications défini sur none.

Lors du débogage, je peux accéder au service Web à partir de mon ordinateur local situé sur un site http. : //monsite.com/ws/ws.aspx? wsdl

Lorsque je télécharge l'application flex sur mysite.com/myapp.html, cela fonctionne très bien.

Mais, lorsque je le télécharge sur myapp.mysite.com/myapp.html, il n'accède pas au service Web.

Quelqu'un sait ce que je manque?

Merci

P.S. Le WS a été créé avec VB.net et, lorsque je crée un projet flex avec le type de serveur d’application défini sur .net, il n’accède pas au WS depuis ma machine locale.

c'est mon fichier 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>

** Mon hypothèse est qu'il ne s'agit pas d'un problème de flexibilité, mais d'une fonctionnalité de sécurité .net ... que je ne sais pas comment configurer.

.NET n'autorisera pas les applications à l'utiliser en dehors de son propre domaine. **

Était-ce utile?

La solution

Par défaut, Flex n'autorise pas l'accès aux services Web sur des hôtes distants. Ceci est une fonctionnalité de sécurité de Flex. Comme votre application Flex est déployée sur myapp.mysite.com , son hôte est différent de celui du service situé sur mysite.com .

Vous pouvez ajouter un crossdomain.xml sur le site mysite.com. Flex vérifiera si le service autorise l'accès à partir de différents domaines. Le fichier crossdomain.xml doit être situé à la racine Web du domaine ( mysite.com/crossdomain.xml ). J'ai utilisé le contenu suivant pour permettre l'utilisation du débogage. Notez que cela permet toute utilisation, donc si vous voulez restreindre l’utilisation en production, vous devez le modifier plus tard.

<?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>

Plus d'informations dans la documentation Flex , en particulier le article de la base de connaissances .

Autres conseils

Essayez de vérifier les demandes faites avec Tamper Data (extension à Firefox). Vérifiez que l'application trouve le fichier crossdomain.xml. Si le chemin est désactivé, c'est votre problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top