JavaScript中的请求来自何处?

时间:2008-10-09 07:53:49

标签: javascript jquery debugging

我正在调试一个包含大量JavaScript,JQuery,Ajax等的大型复杂网页。在该代码的某处,我收到一个调用服务器根目录的请求(我认为它是一个空的img)。我知道它不在html或css中,并且我非常确信在JavaScript代码中的某个地方正在制作请求,但我无法追踪它。我习惯使用firebug,VS和其他调试工具,但我正在寻找一些方法来找出它的执行位置 - 这样我就可以找到大约150个.js文件中的违规行。

除了输入“你现在在这里”的gazzillion控制台输出之外,是否有人建议调试工具可以突出显示Javascript对外部资源的请求?还有其他想法吗?

一步一步的调试需要很长时间 - 我必须小心我的步骤(jQuery源 - yuk!)我可能会错过关键时刻

5 个答案:

答案 0 :(得分:2)

如何在Firebug中使用逐步脚本调试程序?

我也认为这对Firebug来说可能是一个非常有趣的增强,能够在AJAX调用上添加一个断点。

答案 1 :(得分:1)

你谈到了jQuery源代码......

假设请求通过jQuery,将调试语句放在jQuery源get()函数中,如果URL为'/'则启动。也许那时你可以从调用堆栈中判断出来。

答案 2 :(得分:1)

您可以使用Firebug控制台查看通过JavaScript完成的所有HTTP请求。

如果要手动跟踪所有HTTP请求,可以使用以下代码:

$(document).bind('beforeSend', function(event, request, ajaxOptions)
{
   // Will be called before every jQuery AJAX call
});

有关详细信息,请参阅jQuery documentation on AJAX events

答案 3 :(得分:0)

如果将HTTPRequest发送到Web服务器,我建议在Firefox上使用TamperData插件。只需安装插件,启动篡改数据,发送的每个请求都将被提示首先篡改/继续/中止。

访问this page at Mozilla website

答案 4 :(得分:0)

这里只是一个猜测,但你在使用ThickBox吗?它尝试在代码的开头加载图像。

我要做的第一件事是通过Firebug中的Net面板检查此rouge请求是Ajax请求还是图像加载请求。

如果它是Ajax,那么你可以用你自己的方法重载$ .ajax函数并做一个strack跟踪并在转移到原始$ .ajax之前包含所请求的URL。

如果它是一个图像,它并不理想,但是如果您可以通过服务器端睡眠响应图像请求(即只能睡眠20秒的php文件),您可以挂起应用程序并获得开始猜测至于问题可能在哪里。