javascript - 如何处理通过向无效 URL 发出 XMLHttpRequest 引发的 404 错误?
问题描述
我正在编写代码,使用典型的 XMLHttpRequest 使用用户输入进行 API 调用。有时,用户输入的 API 调用是对无效 URL 的(更具体地说,API 是一个词库,当您使用它来询问不在词库中的单词时,您只会收到 404 错误和该页面不存在)。这给出了 404 错误(然后是我认为只是原始副作用的 CORS 错误),并引用了 request.send() 行。我的问题是,无论我尝试什么,我似乎都找不到处理 404 错误的方法。
我试图捕捉错误并在代码的各个部分处理它,但在每个部分中都会抛出错误并且没有处理。我尝试处理错误的地方:
- “错误”事件监听器。回调被调用,但错误似乎已经被抛出并且没有被处理
- 在“加载”事件监听器中
- onreadystatechange 函数
- 将 request.send() 调用放在 try/catch 块中并使调用同步;与错误事件侦听器一样,catch 代码运行但错误仍未处理并进入控制台。请注意,这是如何使用具有类似标题的 XMLHttpRequest 捕获无效 URL 引发的错误所建议的答案,因此我创建了一个新线程。
如何正确处理此错误,使其不会发送到控制台?
我的代码看起来像(没有上面大多数项目符号过去的尝试):
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
解决方案
用 Jaromanda X 的评论内容回答我自己的问题。“控制台显示网络响应,您无法对最终用户隐藏它,”所以只要我发出导致 404 错误的请求,我就无法将其从控制台中取出。鉴于在我的示例中,我看不到有时发出 404 请求的方法(因为需要发出请求以检查词库中是否有单词,如果没有,则会发生 404),没有修复这个问题(并且没有必要修复它)。
推荐阅读
- discord.py - Discord.py 意图错误,我该如何解决?
- animation - AppleScript 编辑器主题演讲(构建、颜色和动画)
- python - 为什么即使我分配了 False,absl 标志也会返回 True?
- talend - 如何加快从 Talend 写入 Impala 的速度
- php - Laravel 8 - 详细网址未正确映射
- javascript - 如何在javascript中同时运行if语句?
- c - 在函数内部创建数组并在外部使用
- python - shutil.move() 到网络驱动器权限被拒绝
- javascript - 映射用户数据数组
- express - 在没有 bodyparser 的情况下访问帖子正文