在Chrome中设置XHR中的断点

我有一个页面在提交表单时发送XHR请求,我希望Chrome在收到响应时中断。 这似乎是最好的方式来实现这一点,如果Chrome有一个JavaScript函数,我可以打电话,打破执行,但我一直无法找到类似的东西。 还有其他解决方案吗?

编辑

我实际上没有为请求定义回调,所以我不能以这种方式设置断点。 该请求正在与这行jQuery代码一起发送:

$.post(this.action, $(this).serialize(), null, "script");

this是一个表单元素。 null参数是你通常定义一个回调的地方,但是使用"script"参数,原始的javascript被服务器返回然后直接执行,所以它似乎是唯一破解和遍历代码的方法是使用debugger; 声明。 这是有效的,但是在逐步完成代码时,你实际上看不到你在哪条线上,所以它有点尴尬。 我怀疑这是Chrome调试工具的限制。


你可以在成功回调中设置一个断点,然后逐步调试。 设置断点:

  • 打开“开发工具”,然后点击顶部的“脚本”标签。
  • 选择包含您的AJAX请求成功回调的脚本。
  • 单击想要断点的左侧的行号。 将出现一个蓝色箭头,指示已设置断点。
  • 然后按照您的要求创建AJAX请求,然后调试器将自动停止在您设置的断点处。
  • 或者,您可以使用debugger语句自动调用调试器。 因此,您的成功回调可能如下所示:

    success: function(data, textStatus, request) {
        debugger; // pause execution and opens debugger at this point
        ...
    }
    

    还要检查这篇用于调试JavaScript的好文章。

    但是,第一种方法更好,因为它不需要您修改代码。


    放下镀铬控制台(ctrl + shift + j)并输入以下任何一个:

    只需重写jquery ajax:

    var prevajax = jQuery.ajax;
    jQuery.ajax = function () { debugger; return prevajax.apply(jQuery, arguments); };
    

    或者如果您不使用jQuery,请重写xhr类:

    var prevxhr = XMLHttpRequest;
    XMLHttpRequest = function (){debugger; prevxhr.apply(this, arguments);};
    

    中断后,只需按shift + f11,直到找到启动ajax请求的方法。


    您也可以转到开发人员工具中的脚本选项卡,并在右侧单击XHR断点并通过URL过滤添加新断点。

    如果你使用jQuery ,当发生断点时,你可以使用CallStack来找到你的叫做jQuery.ajax的函数。

    链接地址: http://www.djcxy.com/p/96473.html

    上一篇: Set a breakpoint in XHR in Chrome

    下一篇: Public variable in aspx.vb Class no accessible in aspx