在浏览器中强制HTTP请求失败

时间:2014-10-20 18:44:49

标签: javascript google-chrome http firefox httprequest

是否有可能使浏览器发送到服务器的http请求失败而不必更改javascript?

我有一个POST请求,我的网站发送到服务器,我们正在尝试测试我们的代码在请求失败时的反应(例如HTTP 500响应)。不幸的是,我需要测试它的环境有uglified和压缩的javascript,所以插入断点或改变javascript不是一个选项。有没有办法让我们利用任何浏览器来模拟失败的请求?

请求需要很长时间才能完成,因此使用浏览器控制台运行javascript命令是可能的。

我已经尝试了using window.stop(),但是,由于我需要执行代码失败,所以这不起作用。

我知道设置代理服务器的选项,但是希望避免这种情况。

5 个答案:

答案 0 :(得分:9)

在Chrome中(刚检查过v63),您实际上可以从“网络”标签中阻止特定的网址(甚至是整个网域)。您只需右键点击该条目,然后选择Block request URL(或Block request domain。)

答案 1 :(得分:5)

一种可能的解决方案是修改浏览器将使用的XMLHttpRequest对象。在javascript控制台中运行此代码将导致页面上所有未来的AJAX调用被重定向到不同的URL(这可能会产生404错误):

XMLHttpRequest.prototype._old_open =
  XMLHttpRequest.prototype._old_open || XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
  return XMLHttpRequest.prototype._old_open.call(
    this, method, 'TEST-'+url, async, user, pass);
};

答案 2 :(得分:3)

不要忽视最简单的解决方案:断开计算机与Internet的连接,然后触发AJAX调用。

答案 3 :(得分:1)

Chrome的开发工具可以选择美化"美化" (即重新缩进)缩小的JavaScript(按左下角的" {}"按钮)。这可以与" XHR断点"请求发生时断开的选项。 XHR断点不支持通过AFAIK修改响应,但您应该能够通过代码找到一种方法。

答案 4 :(得分:-3)

只需在浏览器中输入已更改的网址,例如形成良好的URL,例如http://thedomain.com/welcome/另一个放置“XX”:http://thedomain.com/welcomeXX/,会导致404错误(未找到)