Pregunta

La Configuración:
El programa en cuestión se trata de formulario de envío de datos a través de una llamada AJAX a un procedimiento de destino contenida en el mismo paquete que la persona que llama.Esto se hace para un sitio que utiliza una conexión segura (HTTPS).La tecnología utilizada aquí es PLSQL y el DOJO Biblioteca de JavaScript.La herramienta de desarrollo es básicamente un editor de texto.

Fragmento De Código:

> function testPost() {  
>>    dojo.xhrPost( {  
             url: ''dr_tm_w_0120.test_post'',  
             form: ''orgForm'',  
             load: testPostXHRCallback,  
             error: testPostXHRError  
            });  
      }  

> function testPostXHRCallback(data,ioArgs) {  
>>          alert(''post callback'');  
          try{  
          dojo.byId("messageDiv").innerHTML = data;  
          }  
          catch(ex){  
                if(ex.name == "TypeError")  
                {  
                  alert("A type error occurred.");  
                }  
          }   
          return data;  
       }         
> 
function testPostXHRError(data, ioArgs) {    
>>          alert(data);  
          alert(''Error when retrieving data from the server!'');  
          return data;  
       }    

El Problema:
Cuando el uso de IE6 (que toda la base de usuarios en usa), la respuesta que les envían desde el servidor es un error 404.

Observaciones:
El programa funciona bien en Firefox.
El procedimiento de llamada no puede hacer objetivo a cualquier procedimientos en el mismo paquete.
El procedimiento de llamada puede apuntar a sitios externos (http, https).
Las otras llamadas AJAX en el paquete que no son puestos de formulario de datos funcionan bien.
He buscado en el internets y consultado con altos cualificados miembros del equipo y no he descubierto nada que satisfactoriamente se aborda el problema.
*Tratado de Q&A más en el Dojo de foros de soporte.

Las Preguntas:
¿Qué técnicas de solución de problemas se recomienda?
¿Qué herramientas de solución de problemas ¿recomendaría para HTTPS analizar?
Cualquier hipótesis sobre lo que el problema puede ser?
Todas las ideas para soluciones que no son total (malo) hacks?

Ed.La Solución
lomaxx, thx por el fiddler de la punta.usted no tiene idea de lo increíble que era tenerlo y usarlo como una herramienta de depuración.después de la puesta en marcha esto es lo que he encontrado y como me fijo (al menos en el corto plazo):

> ef Fri, 8 Aug 2008 14:01:26 GMT dr_tm_w_0120.test_post: SIGNATURE (parameter names) MISMATCH VARIABLES IN FORM NOT IN PROCEDURE: SO1_DISPLAYED_,PO1_DISPLAYED_,RWA2_DISPLAYED_,DD1_DISPLAYED_ NON-DEFAULT VARIABLES IN PROCEDURE NOT IN FORM: 0

Después de ver ese mensaje desde el servidor, he pateado todo el Violinista un poco más para ver qué más podía aprender de ella.Encontrado que hay una WebForms ficha que muestra los valores en el formulario web.No lo sabes, el "xxx_DISPLAYED_"campos de arriba estaban en ella.

Realmente no entiendo aún por qué estos campos existen, porque yo no crear de forma explícita en la web PLSQL código.Pero entiendo ahora que el procedimiento de destino tiene que incluir como parámetros para que funcione correctamente.De nuevo, esto es sólo en el caso de IE6 para mí, como Firefox funcionaba bien.

Bien, que el corto plazo de respuesta y hack para solucionarlo.Con suerte, un poco más de trabajo en esta área conducirá a una mejor comprensión de los fundamentos pasando aquí.

¿Fue útil?

Solución

Primer puerto de escala sería el fuego Fiddler y analizar los datos que van hacia y desde el navegador.

Echa un vistazo a las cabeceras, la dirección url que se llama y los parámetros (si los hubiere) que se pasa al método AJAX y ver si todo se ve bien, antes de llegar al servidor.

Si todo se ve bien, hay alguna manera de que usted puede comprobar es en realidad golpear el servidor a través de registro, o de la localización en el AJAX método?

ed:otra cosa que me gustaría tratar es armar una página de prueba a llamar al AJAX método en el servidor mediante ajax basado en llamar y analizar el tráfico en fiddler y comparar los dos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top