2010-04-16 4 views
1

J'ai une application serveur web (basée sur python). Les applications Flash qui se trouvent sur ce serveur doivent se connecter au serveur. Le problème est dans crossdomain.xml.Crossdomain xml et flash

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

Voici le fichier (dans le répertoire racine).

Le problème exact est que les applications flash ne chargent pas ce fichier. Existe-t-il des moyens de le faire manuellement? Par exemple, chargez-le directement à partir de flash-script ou créez une nouvelle application au port donné qui enverra ce fichier à n'importe quel socket connecté.

+0

@oedo, oh, je suis désolé. C'était mon erreur pendant le copier-coller. Et qu'en est-il de la deuxième phrase? Je ne comprends pas de quoi tu as parlé. – Ockonal

+0

J'ai élargi ma réponse ci-dessous, j'espère que cela aide :) – oedo

Répondre

3

Vous ne fermez pas le tag <cross-domain-policy> avec </cross-domain-policy> - avez-vous simplement oublié de copier/coller la dernière ligne? sinon, essayez ça. Vous n'aurez peut-être pas besoin non plus de la ligne DOCTYPE et de la to-ports="*".

nous utilisons ce fichier crossdomain.xml et aussi longtemps qu'il est dans le dossier racine, il est a bien fonctionné pour nous chaque fois que

<?xml version="1.0"?> 
<cross-domain-policy> 
    <allow-access-from domain="*" /> 
</cross-domain-policy> 

si c'est un domaine https et que vous voulez flasher sur les domaines non https à l'accès, il vous faudra changer la ligne allow-access-from à ce

<allow-access-from domain="*" secure="false" /> 

une dernière chose la peine d'essayer est l'ajout de cette ligne:

<allow-http-request-headers-from domain="*" headers="*"/> 

mais nous n'avons jamais eu besoin de l'utiliser pour le chargement/enregistrement standard du flash via http.

+0

Cela n'a pas aidé :( – Ockonal

+0

juste relu votre poste, cette ligne «Les applications Flash qui se trouvent sur ce serveur doivent se connecter au serveur». que le fichier flash se trouve sur http://server.com/dir/flash.swf et que le phython se trouve également dans http://server.com/someotherdir/python.py? Si tel est le cas, vous n'avez pas besoin de crossdomain.xml Il n'est utilisé que lorsque le domaine du swf et le domaine auquel il tente d'accéder sont différents – oedo

+0

le même serveur mais des adresses différentes – Ockonal

2

pouvez-vous exécuter le fichier SWF dans un Firefox et utiliser des données firebug ou tamper pour voir si elle fait une quelconque demande de fichier de politique? Si c'est le cas, déplacez le fichier dans le répertoire correspondant.

+0

Qu'est-ce que je vois exactement dans firebug, par exemple? Il n'y a que get-request pour le fichier swf. – Ockonal