代码之家  ›  专栏  ›  技术社区  ›  Simon Munro

在javascript中,请求来自哪里?

  •  1
  • Simon Munro  · 技术社区  · 16 年前

    我正在调试一个包含大量javascript、jquery、ajax等的大型复杂网页。在代码的某个地方,我收到了一个rouge请求(我认为它是一个空img),该请求调用服务器的根。我知道它不在html或css中,我非常确信在javascript代码中的某个地方正在进行请求,但是我无法跟踪它。我已经习惯了使用firebug、vs和其他调试工具,但我正在寻找一些方法来找出执行该命令的位置,以便在大约150个.js文件中找到有问题的行。

    除了输入大量的控制台输出“you are now here”之外,是否有人建议使用调试工具来突出javascript中对外部资源的请求是在哪里发出的?还有其他想法吗?

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

    5 回复  |  直到 16 年前
        1
  •  2
  •   Guido    16 年前

    在firebug中使用逐步脚本调试器怎么样?

    我还认为这对firebug是一个非常有趣的增强,能够在ajax调用上添加断点。

        2
  •  1
  •   Tomalak    16 年前

    你提到了jquery源…

    假设请求通过jquery,在jquery source get()函数中放入一个调试语句,如果url是'/'。也许你可以从调用堆栈中分辨出来。

        3
  •  1
  •   Vincent Robert    16 年前

    您可以使用 Firebug 慰问。

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

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

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

        4
  •  0
  •   Swanand    16 年前

    如果它是一个发送到web服务器的httprequest,我建议在firefox上使用tamperdata插件。只要安装插件,启动篡改数据,发送的每个请求都会被提示先篡改/继续/中止。

    参观 this page at Mozilla website

        5
  •  0
  •   Remy Sharp    16 年前

    只是猜测一下,但你用的是thickbox吗?它试图在代码的开头加载一个图像。

    我要做的第一件事是通过firebug中的net panel检查这个rouge请求是ajax请求还是图像加载请求。

    如果是ajax,那么可以使用自己的函数重载$.ajax函数,并执行strack跟踪,并在将请求的url传递给原始的$.ajax之前包含它。

    如果它是一个映像,这并不理想,但是如果您可以用服务器端睡眠(即,php文件,只需睡眠20秒)来响应映像请求,那么您就可以挂起应用程序,并开始猜测问题可能在哪里。