取消 Chrome 开发者工具中的 Ajax 请求

39

我想在 Chrome 开发者工具 中取消已经启动的 Ajax 请求。例如,我想测试我的回退消息是否正确显示。我可以将 No throttling 设置为 Offline,这样所有调用都将失败,但我只想测试一个失败的 API,以进行调试。

Developer tools

我知道我可以使用 abort() 方法(即通过 JavaScript 进行操作)。但是,我不想仅因此需要而修改代码。

右键单击 API 会出现“重放 XHR”选项,如果有类似“取消 XHR”这样的选项就太好了,但实际上没有。


2
你可以使用任何广告拦截器扩展(例如uBlock),添加一个规则来阻止你想要调试的任何URL(尽管它的主要功能是阻止广告:D)。 - Tuan Ha
那是个不错的技巧。谢谢。 - Asim K T
2
触发呼叫后,您可以关闭WiFi或拔掉电缆! - antoni
4
我认为这是一个有效的请求,到目前为止提供的解决方法并不能解决问题。我很乐意阅读更好的解决方案。还有其他想法吗? - kriegaex
我知道我可以使用 abort() 方法……无论如何,abort() 不会做你想要的事情:它不会触发错误事件,你也无法测试备用消息。 - Kaiido
3个回答

8

我使用的一个简单技巧是,在选项卡中按下F5,然后立即按下ESC

在加载新答案之前,Chrome 中仍处于活动状态的 XHR 请求将被取消。


1
这应该是被接受的答案。这是取消正在运行请求的唯一方法。 - motcke
1
按下 F5 重新加载页面,无论我多快地按下 Esc。 - AchiPapakon

6
从Chrome 59开始,您可以直接在开发者工具的网络选项卡中阻止特定请求。

https://developers.google.com/web/updates/2017/04/devtools-release-notes#block-requests

在网络面板中右键单击请求,然后选择“阻止请求URL”。抽屉中会弹出一个新的请求阻止选项卡,让您管理已阻止的请求。

所以,在我的情况下,我将运行代码块,特定API,然后重新运行。:)

根据评论,这并不是确切地取消已经开始的请求,而是通过仅阻止一个请求来检查应用程序的行为如何。感谢@Ross Ivantsiv。

screenshot for blocking request


71
阻止请求与取消待处理请求无关。 - Ross
哦,回答已更新。但是对于应用程序的工作要求,如果一个API失败了,我们可以阻止该请求。 - Asim K T
1
我认为问题是如何取消 AJAX 请求! - Hardik Raval
这真是浪费时间,这个回答怎么会有赞成票呢? - Brandon

1
  1. 如果您不知道确切的URL,您可以在源代码选项卡中添加XHR断点来调试所有XHR。

enter image description here

enter image description here

  1. 或者如果您知道XHR的名称或部分URL,您可以通过单击(+)图标将其添加到XHR进行调试。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接