每次我点击我的网络应用程序上的按钮,我都没有得到回应。 “按钮”启动ajax调用。我的猜测是网络流量很大......而且它超时或类似。服务器的ajax响应是否有最长等待时间?有没有办法记录这种行为。这是我的ajax代码。
var Ajax = {
createAjaxObject: function()
{
var request;
try
{
request = new XMLHttpRequest();
}
catch(error)
{
try
{
request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(error)
{
try
{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(error)
{
request = false;
}
}
}
return request;
},
useAjaxObject: function( path, param, ajax_func, html_div )
{
var object = new Ajax.createAjaxObject();
object.open( "POST", path, true );
object.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
object.setRequestHeader( "Content-length", param.length );
object.setRequestHeader( "Connection", "close" );
object.onreadystatechange = function()
{
if( this.readyState === 4 )
{
if( this.status === 200 )
{
ajax_func( this.responseText, html_div );
}
else
{
Ajax.repeatUseAjaxObject( path, param, ajax_func, html_div );
return false;
}
}
};
object.send( param );
return true;
},
repeatUseAjaxObject: function( path, param, ajax_func, html_div )
{
var state = false,
count = 1;
while(state === false && count <= 5)
{
state = Ajax.useAjaxObject( path, param, ajax_func, html_div );
if( count !== 1 )
{
alert( 'Ajax Object Use Failed ');
}
count++;
}
}
答案 0 :(得分:2)
有时响应可能是错误的预期类型,或者服务器返回错误状态代码/页面而不是实际请求的信息。检查完整响应(或者确实存在缺少响应)的好方法是使用良好的HTTP流量代理调试器,例如:
的Fiddler http://fiddler2.com/fiddler2/(免费)
或查尔斯 http://www.charlesproxy.com/
他们将为您提供有关每个Web请求生命周期的完整信息。就最小或最大时间而言,服务器通常具有任何给定请求的超时设置。
客户端网站超时:来自jQuery Api ......不确定,因为你自己推出了自己的网站。
设置请求的超时(以毫秒为单位)。这将覆盖使用$ .ajaxSetup()设置的任何全局超时。超时时间从$ .ajax调用点开始;如果其他几个请求正在进行且浏览器没有可用的连接,则请求可能会在发送之前超时。
答案 1 :(得分:1)
您可能希望查看log4javascript哪个“是基于Java日志框架的JavaScript日志框架”。
AjaxAppender可专门用于发送日志消息。
正如FlavorScape指出的那样,您的服务器也应该具有服务器请求超时的设置。