javascript - 在 Chrome 中的 XHR 中设置断点

标签 javascript google-chrome xmlhttprequest

我有一个页面,在提交表单时发送 XHR 请求,我希望 Chrome 在收到响应时中断。似乎实现这一点的最佳方法是 Chrome 有一个 javascript 函数,我可以调用该函数来中断执行,但到目前为止我还找不到类似的东西。还有其他解决办法吗?

编辑:

我实际上没有为请求定义回调,所以我无法以这种方式设置断点。 请求是通过这行 jquery 代码发送的:

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

其中 this 是表单元素。 null 参数是您通常定义回调的地方,但是使用 "script" 参数,原始 JavaScript 由服务器返回,然后直接执行,所以它似乎是唯一的中断和单步执行代码的方法是使用 debugger; 语句。这是可行的,但是当单步执行代码时,您实际上无法看到自己在哪一行,因此有点尴尬。我怀疑这是 Chrome 调试工具的限制。

最佳答案

下拉 Chrome 控制台 (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请求的方法。

关于javascript - 在 Chrome 中的 XHR 中设置断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3249696/

相关文章:

javascript - 网格状、多重响应图像

css - 使用 -webkit-backface-visibility 时,Windows Chrome 中的单选按钮背景变为白色。任何解决方法?

http - 带有数据参数的 ionic 2 inappbrowser POST 表单

javascript - 如何流动类型对象映射使得值必须包含键

javascript - 使用 Javascript 对区分大小写的值进行分组

javascript - 从 Web 服务器访问客户端本地网络上的文件,但不能访问本地计算机上的文件

javascript - Ajax xml httprequest 到 jquery 的转换

javascript - responseXML 剪辑发送的 XML 数据

javascript - 根据选择框的选择显示 div

javascript - 与 javascript/jquery 中的属性访问器相关的奇怪行为