2010-05-17 8 views
1

J'ai des sous-domaines génériques par exemple:et Subdomain Uploadify ne fonctionne pas

.example.com va à example.com/app/

Il semble Uploadify fonctionne très bien si j'utilise le répertoire au lieu du sous-domaine. Mais quand j'utilise le sous-domaine et que je clique sur l'image de téléchargement rien ne se passe. Il semble charger le flash très bien et pas d'erreurs JS mais quand je clique sur le bouton je n'ai pas de navigateur de fichiers. Peut-être que la façon dont je fais les domaines génériques l'affecte, pas sûr. voici mon htaccess:

RewriteCond %{HTTP_HOST} ^(.*).example.com 
RewriteCond %{HTTP_HOST} !^www.example.com [NC] 
RewriteRule ^(.*)$ http://example.com/app/%1/$1 [P] 

J'utilise aussi le chemin complet pour appeler les js et les fichiers flash. Ils ne sont pas situés sous le sous-domaine mais sous le domaine racine. Donc, je viens d'utiliser le chemin d'URL complète, voici un exemple de mes js:

$("#fileInput").uploadify({ 
     'uploader'  : 'http://example.com/js/upload/_scripts/uploadify.swf', 
     'script'   : 'http://sub.example.com/discuss/upload/do_upload/' + session_id, 
     'cancelImg'  : 'http://example.com/images/icons/del.png', 
     'folder'   : '/files/', 
     'multi'   : true, 
       'auto' : true, 
       'queueSizeLimit' : 10, 
       'buttonImg' : 'http://example.com/images/attachafile2.jpg', 
       'width' : 91, 
       'height' : 23, 
       'wmode' : 'transparent' 
    }); 
+0

Il est possible que vous rencontriez une violation de plusieurs domaines en JavaScript en essayant d'accéder à votre sous-domaine. Je ne suis pas sûr à ce sujet. –

+0

Je ne suis pas vraiment sûr. J'ai essayé de trouver le goulot d'étranglement en voyant si je pourrais le casser dans la version de répertoire mais pas aller. – mikelbring

Répondre

2

La mise en ligne utilise le flash pour effectuer le téléchargement. Flash est soumis à la même politique d'origine, un peu comme un navigateur natif, sauf qu'il a une échappatoire.

Flash recherchera un fichier appelé crossdomain.xml à la racine du serveur Web. Ce fichier XML détermine quels autres domaines peuvent accéder à son contenu via flash.

Par exemple, voici twitter's crossdomain file

Il peut être suffisant dans votre cas pour créer ou modifier ce fichier pour accepter les connexions des différents domaines concernés.

Bonne chance!

+0

C'est ce que j'ai compris après avoir joué plus. J'ai changé la façon dont certaines choses étaient configurées et cela semblait fonctionner maintenant. – mikelbring

0

Sur la base de l'entrée Wikipedia pour l'same origin policy il semble aimer cela ne fonctionnera pas parce que sub.domain.com = domaine! .com en ce qui concerne JavaScript. Cela étant dit, il sounds like aussi longtemps que JavaScript croit il demande le même domaine tout devrait être juste peachy.

Je pense si vous dire Uploadify pour poster la non-réécrite-chemin d'origine et permettre à Apache de gérer la réécriture automatiquement, JavaScript ne pensera pas à cela ne respecte pas la même politique d'origine.

Par exemple: Si vous remappés domain.com/path/to/foo-foo.domain.com puis dans votre demande JavaScript /path/to/foo, Apache se traduira par la demande en conséquence et JavaScript ne sera pas connaître la différence.