Domanda

Le impostazioni:
Il programma in questione tenta di inviare i dati del modulo tramite una chiamata AJAX a una procedura di destinazione contenuta nello stesso pacchetto del chiamante.Questo viene fatto per un sito che utilizza una connessione sicura (HTTPS).La tecnologia utilizzata qui è PLSQL e il DOJO Libreria JavaScript.Lo strumento di sviluppo è fondamentalmente un editor di testo.

Frammento di codice:

> 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;  
       }    

Il problema:
Quando si utilizza IE6 (utilizzato dall'intera base utenti), la risposta inviata dal server è un errore 404.

Osservazioni:
Il programma funziona bene in Firefox.
La procedura chiamante non può indirizzare alcuna procedura all'interno dello stesso pacchetto.
La procedura chiamante può indirizzarsi a siti esterni (sia http che https).
Le altre chiamate AJAX nel pacchetto che non sono post di dati del modulo funzionano correttamente.
Ho cercato il internet e mi sono consultato con i membri del team più esperti e non ho scoperto nulla che risolva il problema in modo soddisfacente.
*Provato Domande e risposte nei forum di supporto di Dojo.

Le domande:
Quali tecniche di risoluzione dei problemi consigliate?
Quali strumenti di risoluzione dei problemi consigliate per l'analisi HTTPS?
Qualche ipotesi su quale potrebbe essere il problema?
Qualche idea per soluzioni alternative che non siano hack totali (cattivi)?

Ed.La soluzione
lomaxx, grazie per il violinista mancia.non hai idea di quanto sia stato fantastico ottenerlo e usarlo come strumento di debug.dopo averlo avviato, questo è quello che ho trovato e come l'ho risolto (almeno a breve termine):

> 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

Dopo aver visto quel messaggio dal server, ho girato ancora un po' per Fiddler per vedere cos'altro potevo imparare da esso.Ho scoperto che esiste una scheda WebForms che mostra i valori nel modulo Web.Non lo sapresti, il "xxx_DISPLAYED_" c'erano i campi sopra.

Non capisco ancora perché esistano questi campi, perché non li ho creati esplicitamente nel web PLSQL codice.Ma ora capisco che la procedura di destinazione deve includerli come parametri per funzionare correttamente.Ancora una volta, questo è solo nel caso di IE6 per me, dato che Firefox ha funzionato bene.

Bene, questa è la risposta a breve termine e l'hack per risolverlo.Si spera che un po’ più di lavoro in quest’area porterà a una migliore comprensione dei fondamenti che si verificano qui.

È stato utile?

Soluzione

Il primo punto di riferimento sarebbe accendere Violinista e analizzare i dati in entrata e in uscita dal browser.

Dai un'occhiata alle intestazioni, all'URL effettivamente chiamato e ai parametri (se presenti) passati al metodo AJAX e verifica se tutto sembra a posto prima di arrivare al server.

Se tutto sembra a posto, esiste un modo per verificare che stia effettivamente colpendo il server tramite la registrazione o il tracciamento nel metodo AJAX?

ed:un'altra cosa che proverei è creare una pagina di test per chiamare il metodo AJAX sul server utilizzando una chiamata non basata su Ajax e analizzare il traffico in Fiddler e confrontare i due.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top