2009-10-01 7 views
0

J'ai un problème très étrange et ce problème se produit très rarement et cela aussi dans notre production env.Problème étrange avec jQuery ajax post

La production env. l'installation est,

Apache Web Server comme couche avant Apache Tomcat 6.0 en tant que serveur d'applications (aimé avec le serveur Web Apache via mod_jk)

J'ai fait sur le composant RPC basé Ajax où nous utilisons jQuery pour les appels ajax. Les données sont communiquées en utilisant la méthode POST.

Les données côté client (objets javascript) sont envoyées au serveur au format JSON et du côté serveur, elles sont désérialisées en objets Java.

L'appel RPC est exécuté en fournissant des informations suivantes,

var jsonParamObj = new Object(); 
jsonParamObj.param0 = objParam0; 
var params = new Object(); 
params.**jsontext**=**toJsonString**(jsonParamObj); 

où jsontext contient les données réelles à transmettre. J'utilise toJsonString javascript fonction disponible en tant que script json open source (JSON.stringify précédemment utilisé mais avait le même problème).

Voici l'appel jQuery,

$.ajax({async:async, 
data:params, 
dataType:"json", 
type:"POST", 
url:this.ajaxAction+qs, 
contentType:"application/x-www-form-urlencoded; charset=UTF-8", 
error:function (XMLHttpRequest, textStatus, errorThrown) 
    { 
    alert('Connectivity Issue : '+textStatus + ' Error : '+errorThrown + ' Response : '+XMLHttpRequest.responseText); 
    }, 
success:function(jsonobj){ 
    if(jsonobj.JSON.ajaxSysError) 
    { 
    alert(jsonobj.JSON.ajaxSysError.message); 
    return; 
    } 

    // do other work 
} 

}); 

Maintenant, le problème est parfois toutes les données envoyées sous forme de params ne parviennent pas au serveur (pas apache ainsi que tomcat) J'ai permis le niveau maximum de verbosité dans les journaux, cependant, toutes les données qu'il envoie via la chaîne de requête (voir qs) atteignent le serveur.

Le navigateur client est IE 7 (Windows XP Édition Media).

Pouvez-vous mettre quelques idées qui m'aideraient à déboguer ce problème.

Merci d'avoir lu cette longue question.

Jatan

+2

Voyez-vous que les données sont affichées par votre navigateur? Veuillez vérifier cela avec Firebug et l'extension Firebug dans l'onglet Réseau. – powtac

+0

C'est ce que j'ai fait en premier mais je n'ai pas pu simuler de scénario dans Firefox. – jatanp

+0

Donc, vous ne voyez pas les données de publication dans Firebug ou Fiddler? – powtac

Répondre

1

Installer Fiddler et regardez la requête HTTP que IE envoie.

De même, placez l'appel ajax dans un bloc try/catch et vérifiez si vous obtenez des erreurs Javascript.