Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制HTTP请求在浏览器中失败_Javascript_Google Chrome_Http_Firefox_Httprequest - Fatal编程技术网

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

Javascript 强制HTTP请求在浏览器中失败,javascript,google-chrome,http,firefox,httprequest,Javascript,Google Chrome,Http,Firefox,Httprequest,是否可以在不改变javascript的情况下使浏览器发送到服务器的http请求失败 我的网站正在向服务器发送一个POST请求,我们正在尝试测试请求失败时代码的反应(例如HTTP 500响应)。不幸的是,我需要在其中测试它的环境已经对javascript进行了丑化和压缩,因此插入断点或修改javascript不是一个选项。我们有没有办法利用任何浏览器来模拟失败的请求 请求需要很长时间才能完成,因此可以使用浏览器的控制台运行javascript命令 但是,我已经尝试过了,这不起作用,因为我需要执行失

是否可以在不改变javascript的情况下使浏览器发送到服务器的http请求失败

我的网站正在向服务器发送一个POST请求,我们正在尝试测试请求失败时代码的反应(例如HTTP 500响应)。不幸的是,我需要在其中测试它的环境已经对javascript进行了丑化和压缩,因此插入断点或修改javascript不是一个选项。我们有没有办法利用任何浏览器来模拟失败的请求

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

但是,我已经尝试过了,这不起作用,因为我需要执行失败代码


我知道可以选择设置代理服务器,但希望避免这种情况。

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

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


Chrome的开发工具有一个选项可以“美化”(即重新缩进)缩小JavaScript(按左下角的“{}”按钮)。这可以与“XHR断点”选项结合使用,以便在发出请求时中断。XHR断点不支持通过AFAIK修改响应,但您应该能够通过代码找到修改响应的方法。

只需在浏览器中键入更改的URL,例如格式良好的URL,例如通过另一个放置“XX”:,这将导致在Chrome中出现404错误(未找到)

(刚刚选中v63),您实际上可以阻止特定的URL(甚至是整个域)。只需右键单击条目并选择
阻止请求URL
(或
阻止请求域

当请求传入时,您为什么不在测试服务器中设置HTTP 500?我没有权限更改服务器代码。您是否尝试过chrome扩展,如
篡改chrome
您也可以在chrome的网络中的“工具”>“开发人员工具”中选择“脱机”复选框。谢谢,回答得很好
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);
};