我遇到一个问题,即使用Firefox时,未完成的AJAX请求触发某种类型的错误,该错误由我的全局错误处理程序捕获。
结果是在页面更改之前的一秒钟内,出现警报,提示“我们无法与服务器通信”。这是无害的,因为页面正在更改,但是很烦人,我想确定消息内容并在Firefox中避免它。
由于该问题仅在Firefox中止正在运行的AJAX请求时出现,因此我需要在浏览器的页面上重新加载新的请求。
我正在使用Firefox 66.0.3。
根据Mozilla's webdocs,尚无法在“ {new debugger”” like it is in Chrome devtools中中断DOM事件:
我有可以附加断点的错误处理代码。不过遗憾的是,任何断点(或debugger
语句)都不能 防止 更改页面,因此我无法进行实际调试。
有没有办法让断点 在 之前捕获,以便我可以研究堆栈/控制台?
答案 0 :(得分:0)
因此,这不是“完美”的解决方案,而是“ a”解决方案。
为了找到调试所需的必要信息,我所做的就是将日志保留在控制台中。
然后我修改了脚本,以将各种变量和/或堆栈记录到控制台,以便可以调试导致问题出现的请求和浏览器的状态。
对于它的价值,发生的事情是,当用户从页面导航时,在关闭AJAX请求时,在Firefox中调用jQuery ajaxError处理函数,并且将statusText参数设置为“错误”。
为防止处理程序引发错误的“与服务器通信错误”弹出窗口,我检查请求的status是否仍设置为0(未发送/正在加载)。
不,我不确定为什么Chrome不会触发ajax错误处理程序,而Firefox会触发