Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
J'ai voulus tester rapidement dojo sur une de mes appli sous ZF 1.6 (RC1)
et il ce trouve que tous mes javascripts sont sur un serveur (http://static.domain.tld/library/dojo/dojo.js)
tandis que mon application est accessible via un autre domaine (http://soft.domain.tld)
j'ai voulus implémenter cet exemple du dojo campus qui comprend en interne 2 chargement de fichiers du framework Dojo (dijit) via xhr
dojo.require("dijit.form.Button"); dojo.require("dijit.Menu");
au chargement de la page sous FF3, j'obtiens une exception javascript
failed loading http://static.domain.tld/library/dojo/d … /Button.js with error: [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "http://static.domain.tld/library/dojo/dojo/dojo.js Line: 20"]
j'ai compris que cela viens du fait que FF3 (comme expliqué ici) implémente le "W3C Access Control"
donc en gros il s'agit d'une sécurité des navigateur web, même le bon vieux IE6 ne semble pas apprécier et me sort des alert popup
j'aimerais donc avoir du feedback sur vos implémentation de dojo en utilisant un filer static pour javascript
et pourquoi pas trouver et partager ici la solution si il en existe une autre que de mettre le JS sur le même domaine que l'appli ... (non envisageable dans mon cas)
je n'ai pas trop non plus envie de bricoler une rewrite rule pour apache ... comment faire ?
EDIT:
pistes: http://74.125.39.104/search?q=cache:Uyy … k&cd=3
Dernière modification par lethak (13-08-2008 02:15:44)
Hors ligne
Il semble que dans la version 1.2 de dojo (en projet ?) il y ait quelque chose comme
dojox.io.xhrPlugins.addCrossSiteXhr("http://static.domain.tld/");
mais cela ne semble pas encore en stable ?
Hors ligne
Ok j'ai essayé de feinter avec un rewrite
http://soft.domain.tld/static/
RewriteRule ^static(.*)$ http://static.domain.tld$1 [L,R=301]
dans l'absolue ça fonctionne mais voila que :
Could not load 'dijit.form.Button'; last tried '../dijit/form/Button.js'
je désespère car je pense que la fonction dojo.require ne tiens pas compte du statut HTTP et charge:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="http://static.domain.tld/library/dojo/dijit/form/Button.js">here </a>.</p> </body></html>
au lieu de charger le résultat de la redirection (http://static.domain.tld/library/dojo/d … /Button.js)
EDIT:
j'ai essayé tous les codes de redirection sans plus de résultats
Dernière modification par lethak (13-08-2008 01:51:12)
Hors ligne
Autre piste mais qui n'est pas non plus LA solution:
> Why does Dojo fail to load from file: URLs in Firefox 3?
http://dojotoolkit.org/support/faq/why- … -firefox-3
Hors ligne
solution php-proxy:
http://soft.domain.tld/staticproxy?libr … /Button.js
public function staticproxyAction() { $URI ='http://static.domain.tld/'.$_SERVER['QUERY_STRING']; $output = @file_get_contents($URI); if(count(error_get_last()) > 0 ) { $error = error_get_last(); die('ERROR: '.$error['message']); } else { die($output); } }
problèmes de header content-type a régler
cette solution a pour ennorme désavantage de ralentir le serveur TANDIS que le but principal d'utiliser un filer static c'est justement d'alleger la charge serveur...hum donc pas viable :p
Hors ligne
bon dojo je pense que c'est impossible a appréhender dans mon cas..pas suffisamment bien détaille pour le gars qui débute :p
ca commence a me lourder
pourquoi zend les a choisi ? ...-_-
Hors ligne
Pages: 1