Question

Le réglage:
Le programme en question tente de publier les données du formulaire via un appel AJAX vers une procédure cible contenue dans le même package que l'appelant.Ceci est fait pour un site qui utilise une connexion sécurisée (HTTPS).La technologie utilisée ici est PLSQL et le DOJO Bibliothèque JavaScript.L'outil de développement est essentiellement un éditeur de texte.

Extrait de code:

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

Le problème:
Lors de l'utilisation d'IE6 (que l'ensemble de la base d'utilisateurs utilise), la réponse renvoyée par le serveur est une erreur 404.

Observations :
Le programme fonctionne bien dans Firefox.
La procédure appelante ne peut cibler aucune procédure au sein du même package.
La procédure appelante peut cibler des sites extérieurs (http, https).
Les autres appels AJAX du package qui ne sont pas des publications de données de formulaire fonctionnent correctement.
j'ai cherché le Internet et consulté des membres de l'équipe hautement qualifiés et n'avons rien découvert qui résolve le problème de manière satisfaisante.
*Essayé Questions et réponses sur les forums d'assistance Dojo.

Questions:
Quelles techniques de dépannage recommandez-vous ?
Quels outils de dépannage recommandez-vous pour l’analyse HTTPS ?
Des hypothèses sur ce que pourrait être le problème ?
Avez-vous des idées de solutions de contournement qui ne sont pas des (mauvais) hacks ?

Éd.La solution
lomaxx, merci pour le violoneux conseil.vous n'avez aucune idée à quel point c'était génial de l'obtenir et de l'utiliser comme outil de débogage.après l'avoir démarré, voici ce que j'ai trouvé et comment je l'ai corrigé (au moins à court terme) :

> 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

Après avoir vu ce message du serveur, j'ai parcouru un peu plus Fiddler pour voir ce que je pouvais en apprendre d'autre.J'ai découvert qu'il existe un onglet WebForms qui affiche les valeurs dans le formulaire Web.Ne le sauriez-vous pas, le "xxx_DISPLAYED_" Les champs ci-dessus étaient dedans.

Je ne comprends pas encore vraiment pourquoi ces champs existent, car je ne les ai pas créés explicitement dans le web PLSQL code.Mais je comprends maintenant que la procédure cible doit les inclure comme paramètres pour fonctionner correctement.Encore une fois, ce n'est que dans le cas de IE6 pour moi, Firefox a bien fonctionné.

Eh bien, c'est la réponse à court terme et le hack pour y remédier.Espérons qu’un peu plus de travail dans ce domaine mènera à une meilleure compréhension des principes fondamentaux en vigueur ici.

Était-ce utile?

La solution

La première escale serait de démarrer Violoneux et analyser les données entrantes et sortantes du navigateur.

Jetez un œil aux en-têtes, à l'URL réellement appelée et aux paramètres (le cas échéant) transmis à la méthode AJAX et voyez si tout semble bon avant d'accéder au serveur.

Si tout semble correct, existe-t-il un moyen de vérifier qu'il atteint réellement le serveur via la journalisation ou le traçage dans la méthode AJAX ?

éd :une autre chose que j'essaierais est de créer une page de test pour appeler la méthode AJAX sur le serveur à l'aide d'un appel non-ajax, d'analyser le trafic dans Fiddler et de comparer les deux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top