Comunidad de diseño web y desarrollo en internet online

Capturar Error #2101: La cadena transmitida...

Citar            
MensajeEscrito el 22 Oct 2010 08:38 am
Hola!!

Alguna idea acerca de cómo capturar este error??
El error lo fuerzo yo poniendo aposta un error de sintaxis en php. Realmente la aplicación me funciona bien, pero me gustaría poder capturar este error usando VARIABLES como dataFormat.

Código ActionScript :

         var request:URLRequest = new URLRequest ("xxxxx.php");
         request.method = URLRequestMethod.POST;
         
         var variables:URLVariables = new URLVariables();
         variables.action="data";
         
         request.data = variables;
         var loader:URLLoader = new URLLoader (request);
         loader.dataFormat=URLLoaderDataFormat.VARIABLES;
         loader.addEventListener(Event.COMPLETE, onDataComplete);
         loader.addEventListener(IOErrorEvent.IO_ERROR, onDataIOError);
         loader.load(request);


Gracias.

Marcos.

Por ElMarkis

55 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Oct 2010 08:39 am
El mensaje de error completo:

Error: Error #2101: La cadena transmitida a URLVariables.decode() debe ser una cadena de consulta con formato URL codificado y pares nombre/valor.

Por ElMarkis

55 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Oct 2010 12:39 pm
Eso te responder cuando lo que devuelve el PHP no tiene formato para decodificar con URLVariables. En la función onDataComplete, haz:

Código ActionScript :

trace(e.target.data);


Y fijate que está devolviéndo en verdad el PHP.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 25 Oct 2010 08:25 am
Hola.

En primer lugar gracias por tu respuesta.

El motivo de por qué se lanza el error lo tengo claro, de hecho, tal y como puse en el post inicial, yo mismo estoy forzando que flash me lance este error mediante un error de sintaxis en php. Al haber este error en php se lanza la excepción "Error: Error #2101: La cadena... " en flash.

Lo que yo pretendo no es saber como evitar este error, sino como capturarlo.

Espero que esta vez me haya explicado mejor.

Un saludo.
Marcos.

Por ElMarkis

55 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Oct 2010 01:22 pm
Pues usando try

Código ActionScript :

try{
// ALGO
}catch(e:Error){
// Capturado
}finally{
//Código que si o si debe ejecutarse
}


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 25 Oct 2010 01:31 pm
Sí, pero ¿dónde?

Uso try, catch para capturar otros muchos errores, pero con este no me funciona. No se que puedo estar haciendo mal..

No se que sentencias deben ir dentro del try para que el catch me capture el error....

Saludos.
Marcos.

Por ElMarkis

55 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Oct 2010 05:58 pm
Pues lo que tira error es el URLVariables, dónde procesas la URL con URLVariables, ahí va.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 27 Oct 2010 02:18 pm
Dado el código que puse en el primer post, ¿que líneas, según tú, debería ir dentro del try?

Yo no consigo capturarlo:'(

Saludos.
Marcos.

Por ElMarkis

55 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Oct 2010 03:02 pm
Bien,

parece ser que este error se lanza desde el nivel del objeto URLVariables y no desde el objeto URLLoader. Es el propio objeto URLVariables el que llama implicitamente a la función decode() que es la que provoca el error. La solución "más elegante" que he podido hacer es la de cambiar

Código ActionScript :

loader.dataFormat=URLLoaderDataFormat.VARIABLES; 


por

Código ActionScript :

loader.dataFormat=URLLoaderDataFormat;TEXT;


De este modo no se llamará a decode a no ser que yo lo haga. Después en el oyente del evento COMPLETE, hago lo siguiente:

Código ActionScript :

private function onDataComplete(e:Event):void
{
   var variables:URLVariables = new URLVariables();
   try
   {
      variables.decode(e.target.data);
   }
   catch(e:Error)
   {
      trace("error decode");
   }
}


Aparentemente es el modo de capturar este error.
Gracias por tu ayuda Hernán.
Un saludo.
Marcos.

Por ElMarkis

55 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Oct 2010 01:12 am
Eso es exactamente lo que te dije ¬¬

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 28 Oct 2010 10:35 am
Ya!!!

Lo que me costó fue entender que tenia que cambiar URLLoaderDataFormat.VARIABLES por URLLoaderDataFormat.TEXT
para así ser yo el que llame a decode().

Gracias de nuevo!!

Por ElMarkis

55 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.