2008-09-15 5 views
4

je charge du XML à partir d'un servlet de mon application Flex comme ceci:Comment empêcher l'URLRequest de Flash d'échapper l'URL?

_loader = new URLLoader(); 
_loader.load(new URLRequest(_servletURL+"?do=load&id="+_id)); 

Comme vous pouvez l'imaginer _servletURL est quelque chose comme http://foo.bar/path/to/servlet

Dans certains cas, cette URL contient des caractères accentués (longue histoire). Je passe la chaîne unescaped à URLRequest, mais il semble que Flash l'échappe et appelle l'URL échappée, qui n'est pas valide. Des idées?

Répondre

4

Je ne sais pas si ce sera différent, mais cela est un moyen plus propre d'atteindre le même URLRequest:

var request:URLRequest = new URLRequest(_servletURL) 
request.method = URLRequestMethod.GET; 
var reqData:Object = new Object(); 

reqData.do = "load"; 
reqData.id = _id; 
request.data = reqData; 

_loader = new URLLoader(request); 
+0

merci, mais en plus joli, il fait aucune différence –

0

Des LiveDocs: http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html

Crée un objet URLRequest . Si System.useCodePage a la valeur true, la requête est codée à l'aide de la page de codes système plutôt que d'Unicode. Si System.useCodePage est défini sur false, la requête est codée en utilisant Unicode, plutôt que la page de codes système.

Cette page a plus d'informations: http://livedocs.adobe.com/flex/3/html/help.html?content=18_Client_System_Environment_3.html

mais, fondamentalement, il vous suffit d'ajouter à une fonction qui sera exécutée avant la URLRequest (je ne serais probablement le mettre dans un événement creationComplete)

System.useCodePage = false;

+0

Merci, mais de cette même page, il dit useCodePage est faux par défaut. Quoi qu'il en soit, je vais expérimenter –

+1

useCodePage est un peu un hack, car il utilise la page de code du système, il pourrait fonctionner sur une machine en anglais, mais échouer sur tous les autres. – grapefrukt

Questions connexes