如何处理通过向无效网址发送XMLHttpRequest引发的404错误?

时间:2019-09-23 01:38:20

标签: javascript xmlhttprequest

我正在编写代码,在其中使用典型的XMLHttpRequest使用用户输入进行API调用。有时,用户输入的结果是对无效URL的API调用(更具体地说,API是同义词库,当您使用它来查询同义词库中的单词时,只会收到404错误,并且该页面不存在)。这给出了404错误(然后是CORS错误,我认为这只是原始错误的副作用),并引用了request.send()行。我的问题是,无论尝试什么,我似乎都找不到解决404错误的方法。

我已经尝试捕获错误并在代码的各个部分中进行处理,但是在每个错误中,都会引发并处理错误。我尝试处理错误的地方:

  • “错误”事件侦听器。回调已被调用,但错误似乎已经引发并且没有得到处理
  • 在“加载”事件监听器中
  • onreadystatechange函数
  • 将request.send()调用放入try / catch块中并使该调用同步;与错误事件侦听器一样,捕获代码已运行,但错误仍未得到处理,并进入控制台。请注意,这是How to catch the error thrown by an invalid URL using XMLHttpRequest建议的答案,标题相似,因此,为什么要创建新线程。

如何正确处理此错误,以免将其发送到控制台?

我的代码看起来像(没有上面上面提到的大多数项目符号):

var req = new XMLHttpRequest();
req.open("GET",url, false);
req.addEventListener("load", function(event) {
... (handle response)
}
req.send(); //this is where the error comes in

1 个答案:

答案 0 :(得分:0)

用Jaromanda X的评论内容回答我自己的问题。 “控制台显示网络响应,您无法采取任何措施将其隐藏给最终用户。”因此,只要我提出的请求导致404错误,我就无法将其从控制台中删除。鉴于在我的示例中,我看不到有时会发出404请求的方法(因为需要发出请求以检查同义词库中是否有单词,如果没有,则会出现404),因此没有解决此问题(无需修复)。