2009-11-10 15 views
0

J'ai implémenté un serveur webservice gSoap C++ accessible par Flash (as3) Tout fonctionne parfaitement tant que je teste le fichier .swf localement , le fichier .wsdl est correctement chargé et la communication fonctionne, même si le serveur fonctionne déjà sur une adresse IP externe.violation de sécurité sandbox as3 avec http://schemas.xmlsoap.org/soap/encoding/

Mais le moment je mets en ligne que .swf - son entrée avec des violations de sécurité sandbox pleurer sur la norme - schémas comme ça:

Error: [strict] Ignoring policy file at http://schemas.xmlsoap.org/crossdomain.xml 
due to incorrect syntax. See http://www.adobe.com/go/strict_policy_files to fix this 
problem. 

*** Security Sandbox Violation *** 
Connection to http://schemas.xmlsoap.org/soap/encoding/ halted - not permitted from 
http://mydomain.com/main.swf 
Error: Request for resource at http://schemas.xmlsoap.org/soap/encoding/ by requestor 
from http://mydomain.com/main.swf is denied due to lack of policy file 
permissions. 

Quelqu'un peut-il me aider avec ce problème?

Ou est-il peut-être une bonne façon de définir une simple méthode de webservice (comme commande stringResult = (stringSessionId, stringCommand, stringParams, stringResult)) sans charger le .wsdl - fichier? Si j'avais cette possibilité je n'aurais pas à trébucher sur ce bac à sable - trucs.

Toute aide appréciée.

Répondre

0

Merci pour les commentaires. Le vrai problème ici, c'est que le fichier wsdl généré par gSoap essaye d '"accéder" à ces domaines partout, de sorte que les trucs interdomaines sont hors de mes mains. Quoi qu'il en soit, j'ai résolu le problème maintenant en écrivant le wsdl à la main sans tout ce wsdl gsoap méga bourgeonnant, donc il suffit d'accéder aux domaines w3c. * Et ils sont évidemment crossdomained droite.

1

Le fichier de stratégie de domaine croisé est absent. Il devrait être au this emplacement. Vous pouvez charger 'wsdl' depuis votre machine locale, car votre bac à sable est de confiance locale (c'est-à-dire le bac à sable le plus pratique). Donc, actuellement, je ne vois aucun moyen d'accomplir cela dans Flash à moins qu'il y ait un fichier de politique crossdomain à l'endroit désiré.
Mais vous pouvez essayer Server Side Proxy Method pour charger le wsdl.

0

Flash n'autorise pas le chargement de contenu à partir de domaines autres que celui où votre fichier SWF est hébergé, à moins que ces domaines ne vous permettent de le faire. Les domaines distants peuvent choisir d'autoriser les fichiers SWF de votre domaine à charger du contenu à partir d'eux à l'aide d'un fichier de règles crossdomain.xml hébergé sur leur racine Web. Voici quelques exemples de fichiers de règles: YouTube, Twitter. Consultez le lien Adobe sur les fichiers de stratégie pour en savoir plus. Le message d'erreur "Ignorer en raison d'une syntaxe incorrecte" indique que le fichier de stratégie est présent mais pas bien formé ou qu'il contient des erreurs de syntaxe. Mais je ne trouve rien au http://schemas.xmlsoap.org/crossdomain.xml.

Où votre service Web est-il hébergé? Qu'est-ce que vous essayez de charger à partir de http://schemas.xmlsoap.org/soap/encoding/?