我有一个非常奇怪的问题,这个问题很少发生,在我们的生产环境中也是如此。
生产环境设置是,
Apache Web Server作为前层 Apache Tomcat 6.0作为应用程序服务器(通过mod_jk与Apache Web服务器一起使用)
我有定制的基于Ajax的RPC组件,我们使用jQuery进行ajax调用。使用POST方法传递数据。
客户端数据(javascript对象)以JSON格式发送到服务器,在服务器端,它们被反序列化为java对象。
通过提供以下信息来执行RPC调用
var jsonParamObj = new Object();
jsonParamObj.param0 = objParam0;
var params = new Object();
params.**jsontext**=**toJsonString**(jsonParamObj);
其中jsontext包含要传输的实际数据。我使用toJsonString javascript函数作为开源json脚本(以前使用JSON.stringify但有同样的问题)。
以下是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
}
});
现在的问题有时是以params形式发送的数据无法到达服务器(不是apache以及tomcat)我已经在日志中启用了最高级别的详细程度,但是它通过查询字符串发送的数据(请参阅 qs )到达服务器。
客户端浏览器是IE 7(Windows XP Media Edition)。
您能否提出一些有助于我调试此问题的想法。
感谢您阅读这个长期的问题。
Jatan