使用 Fetch API 时捕获“无法加载资源”

2023-12-30

我试图在使用 Fetch API 时捕获一堆与同源策略相关的错误,但没有成功:

window.onerror = (message, file, line, col, error) => console.log(error)
window.addEventListener('error', (error) => console.log(error))

try {
    fetch('https://www.bitstamp.net/api/ticker/').catch(e => {
        console.log('Caugth error:')
        console.log(e)
        console.log(JSON.stringify(e))
    })
}
catch (e) {
    console.log('try-catch')
    console.log(e)
}

我想要捕获的错误仅出现在 Web 控制台中:

See code example here: https://github.com/nyg/fetch-error-test https://github.com/nyg/fetch-error-test

如何捕获这些错误并在屏幕上提供消息?

EDIT: fetch 的 catch 块实际上被执行了。

fetch('https://www.bitstamp.net/api/ticker/')
    .then(response => response.text())
    .then(pre)
    .catch(e => {
        pre(`Caugth error: ${e.message}`)
    })

function pre(text) {
    var pre = document.createElement('pre')
    document.body.insertAdjacentElement('afterbegin', pre)
    pre.insertAdjacentText('beforeend', text)
}
pre {
    border: 1px solid black;
    margin: 20px;
    padding: 20px;
}

据我所知,你不能catch典型的浏览器驱动异常try->catch or a catch chain代替fetch.

CORS 异常是有意抛出的,目的是让浏览网站的用户知道此类异常(如果您可以这样称呼它们),并防止被调用的 api/服务器上可能发生的安全信息泄露

Read here https://stackoverflow.com/questions/4844643/is-it-possible-to-trap-cors-errors之前关于是否可以使用异常处理程序捕获这些错误的讨论

如果请求抛出一个错误,该错误可能是响应的一部分,例如状态错误等,那么您可以捕获它并显示自定义消息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Fetch API 时捕获“无法加载资源” 的相关文章

  • 使用日期类型将输入字段中的日期居中

    我想将日期居中input not input inside div 如果我进行居中 它将把日期居中于input因为有一个右侧面板用于根据日历选择日期 该面板根据输入宽度调整大小 用于演示的小代码片段 center text align ce
  • Javascript:如何检查异步操作是否仍在挂起/正在进行中?

    我想知道是否可以以某种方式检查 Javascript 中的异步操作是否仍处于待处理状态 因为我正在执行调用特定 URL 的数据库请求 虽然 db 调用仍在进行中 但我想停止任何其他传入的 db 调用 这意味着 停止对该 URL 的任何进一步
  • 为什么 `obj.foo = function() { };` 没有将名称 `foo` 分配给函数?

    从 ES2015 ES6 开始 函数有了专有名称 包括官方名称 name属性 而函数创建时的赋值除了明显的函数声明和命名函数表达式之外还有多种方式 比如给变量赋值 函数的名字设置为变量的名字 给对象属性赋值 函数的名称设置为属性的名称 甚至
  • 根据嵌套值使用数组过滤对象数组

    我正在尝试根据某些嵌套对象过滤数组 我准备了一些Fiddle http jsfiddle net NZnN2 249 输入数组如下所示 let arrayOfElements name a subElements surname 1 sur
  • 如何从ArrayBuffer中获取二进制字符串?

    JavaScript中如何从ArrayBuffer中获取二进制字符串 我不想对字节进行编码 只需将二进制表示形式获取为字符串 提前致谢 以下代码将一致地转换ArrayBuffer to a String并再次返回 而不会丢失或添加任何额外的
  • 按下了哪个提交按钮?

    在这个jsfiddle中 http jsfiddle net littlesandra88 eGRRb http jsfiddle net littlesandra88 eGRRb 我是否提交了自动生成的按钮 每个表行都有一个唯一的 ID
  • 使用 javascript 调用 ViewComponent

    我有一个带有几个视图组件的网页 当我单击这些组件时 我会为其打开一个简单的编辑器 请参见下图 如果我编辑文本并按 Enter 键 我想重新渲染视图组件而不是孔页面 是否可以使用 javascript 调用视图组件来获得此行为 通过更新 您现
  • 捕获外部脚本文件中的 javascript 错误

    我有一点 JavaScript Jquery 工具的叠加层 http flowplayer org tools overlay index html 当放到错误使用它的页面上时可能会引发异常 我正在尝试优雅地处理它 我有一个通用的 wind
  • 检测 iframe 内容加载失败

    我可以使用以下命令检测 iframe 的内容何时加载load事件 不幸的是 就我的目的而言 这有两个问题 如果加载页面时出现错误 404 500 等 则永远不会触发加载事件 如果某些图像或其他依赖项加载失败 则会照常触发加载事件 有什么方法
  • 区分单击与 mousedown/mouseup

    我已经阅读了有关这种情况的 stackoverflow 上的几个答案 但没有一个解决方案有效 我尝试根据用户是否单击某个元素或使用 jQuery 将鼠标按住该元素来执行不同的操作 有可能做到这一点吗 onMouseDown 将在按下左侧或右
  • React:React 如何确保在浏览器有机会绘制之后调用 useEffect?

    useLayoutEffect 的文档说 useLayoutEffect 内计划的更新将被刷新 在浏览器有机会绘制之前同步进行 useEffect 的文档说 与 componentDidMount 和 componentDidUpdate
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • 如何向尚未添加到页面的元素注册 Javascript 事件处理程序

    我正在尝试构建一个greasemonkey 脚本 它将根据用户与其他动态创建的数据表的交互动态创建数据表 我的问题是 每次创建表时 我都必须进行两次传递 一次用于创建表 另一次用于获取表中我想要添加事件处理程序的所有对象 通过 id 并添加
  • 带有嵌入式 Ruby 的 Javascript:如何安全地将 ruby​​ 值分配给 javascript 变量

    我在页面的 javascript 块中有这一行 res foo 处理这种情况的最佳方法是什么 ruby var里面有单引号吗 否则会破坏 JavaScript 代码 我想我会用红宝石JSON http json org ruby var 上
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • 如何在 ChartJS 中创建自定义图例

    我需要使用 ChartJS 库为我的圆环图创建自定义图例 我已经使用 ChartJS 提供的默认图例创建了甜甜圈 但我需要一些修改 我希望其价值高于汽车名称 另外 我不喜欢粘性图例 我想将其与甜甜圈分开 这样我就可以更改字体 框的样式 例如
  • Javascript / jQuery - 转换特殊 html 字符

    我有一个pre元素中包含一些 html 代码 该代码中有特殊字符 例如 lt 所以它不会破坏页面 然后我有一个 javascript 函数 它获取此 pre 元素的内容 突出显示它 使用 codemirror 并用突出显示的文本替换元素内容
  • 从 Node.js 调用 execl、execle、execlp、execv、execvP 或 execvp 的方法

    POSIX 系统公开了一系列exec函数 允许人们将可能不同的东西加载到当前进程中 保留打开的文件描述符 进程标识符等 可以出于多种原因执行此操作 在我的情况下 这是引导 我想更改我自己的进程的命令行选项 然后在现有进程上重新加载它 这样就
  • 使用 stopPropagation() 处理 React 事件委托

    我有一个 React 项目 应该可以放置在任何网站上 我的想法是 我托管一个 javascript 文件 人们放置一个具有特定 ID 的 div 然后 React 在该 div 中进行渲染 到目前为止 除了点击事件之外 这是有效的 这些事件

随机推荐

  • 将脚本调整为多个对象时 Unity 冻结

    我正在努力通过 Unity 扔球并获取球的坐标 应用了两件事 一个用于身体动作的脚本和一个用于落球的脚本 我认为这两个代码的运行没有问题 因为当我将脚本应用于一个球时没有问题 顺便说一句 当球的数量增加到 100 个时 Unity 就会停止
  • QOpenGLWidget 在 update() 上停止重画

    我有一个自定义 QDialog 其中包含一个具有 4 个独立实例的层次结构QOpenGLWidget 这些中的每一个QOpenGLWidget有自己的 GL 上下文 并渲染不同的场景 我有一个循环调用update 推荐的重新绘制方法 在每个
  • 在构建时更新 dSYM 中的 CFBundleShortVersionString?

    我将其用作项目中的构建阶段 export PLISTBUDDY usr libexec PlistBuddy export INFO CODESIGNING FOLDER PATH Info plist export RXREVISION
  • 是否可以向在参数中传递的提交按钮添加一个值?

    我正在尝试向我的应用程序添加 预览 按钮 页面 有没有一种方法可以向我的 发布 和 预览 提交按钮添加不同的值 这些按钮在参数哈希中传递 以便我可以检查在控制器中按下了哪个按钮并相应地渲染视图 这是最好的方法吗 的按键params哈希只是n
  • C++:友元声明‘声明非模板函数

    我遇到了超载问题 lt lt 流运算符 我找不到解决方案 template
  • Keras - model.evaluate() 和 model.predict() 之间有什么区别

    我有两个问题 1 model evaluate 和 model predict 有什么区别 2 Keras 如何计算其中每一项 model evaluate预测值并计算给定数据集上模型的损失和所有附加指标 它返回一个列表 其中包含一个值中的
  • File.ReadLines 没有锁定吗?

    我可以用以下命令打开 FileStream new FileStream logfileName FileMode Open FileAccess Read FileShare ReadWrite 无需锁定文件 我可以做同样的事情File
  • 注意:使用未定义的常量 ENT_HTML5 - 假定为“ENT_HTML5”

    我正在尝试创建一个接受 htmlspecialchars 参数的简单方法 虽然我收到 PHP 通知 使用未定义的常量 ENT HTML5 假定为 ENT HTML5 有什么想法可能导致这种情况吗 Encode string param ar
  • 乘客问题 - Apache

    在 Ubuntu 10 04 LTS 的 Linode 切片中运行 我收到 500 内部服务器错误 Apache 日志有 Apache 2 2 14 Ubuntu Phusion Passenger 2 2 7 配置 恢复正常操作 捕获 S
  • Django 返回带有 L 的用户模型 ID

    这个问题直到现在才出现 这里是 当我尝试从用户模型获取用户 ID 时 它返回用户 ID 和字母 L gt gt gt from django contrib auth models import User gt gt gt u User o
  • Java:如果我的程序有一个实例正在运行,我如何检测它,然后关闭旧的实例

    我只想运行我的程序的一个实例 但我希望它能关闭旧的 如果它们打开的话 这是在Java中 如果应用程序是使用启动的Java网络启动 http www java com en download faq java webstart xml它可以访
  • 我可以以编程方式列出 Images.xcassets/Something 中的文件吗?

    是否可以列出 Images xcassets Something 中的所有图像 以便我可以在表格列表视图中显示它们 我试过了 NSArray pngs NSBundle pathsForResourcesOfType png inDirec
  • 如何使用 DropZone.js 获得更高质量的缩略图?

    我正在使用 DropZone 将文件上传到我的服务器 默认设置就可以了 但是照片有点小 我决定进入 dropzone css 文件并将默认参数更改为 250px x 250 px 而不是 100px x 100px dropzone pre
  • spring-data-redis Jackson 序列化

    我正在尝试使用 spring data redis 的 Jackson 序列化功能 我正在构建一个 ObjectMapper 并使用 GenericJackson2JsonRedisSerializer 作为 redisTemplate 的
  • 短变量声明和“声明变量但未使用”错误

    我偶然发现了一个奇怪的问题 以下代码无法编译 func main var val reflect Value var tm time Time if tm err time Parse time RFC3339 2018 09 11T17
  • 使用netty高速发送消息时出现OOM异常

    我用netty编写了一个客户端 以便以高速率发送消息 通过 jConsole 我看到 老一代 正在增加 最后它抛出 java lang OutOfMemoryError 超出 GC 开销限制 是否有一些方法或配置可以避免此异常 以下是我的测
  • 管理每周时间表的数据库架构

    我写这篇文章是因为我想知道是否有人可以帮助我找出简单时间表应用程序的最佳数据库架构 我不知道如何绘制表格来帮助我代表一年中的几周 所有用户都将在其中记录他们每周的工作时间 干杯 非常感谢您的帮助 吉列尔莫 我将与您分享我们使用的一个典型模型
  • Scala 元组的通用“映射”函数?

    我想使用返回类型 R 的单个函数来映射 Scala 元组 或三元组 的元素 结果应该是具有 R 类型元素的元组 或三元组 好的 如果元组的元素来自相同类型 则映射不是问题 scala gt implicit def t2mapper A t
  • 灰度图像中像素的质心

    我正在开发一个程序 让用户在 涂鸦区域 绘制一个数字 按下按钮 应用程序将使用神经网络分类器预测他输入的数字 现在 为了训练神经网络 我使用了 MNIST 数据库 其中指定了以下内容 NIST 中的图像经过尺寸标准化以适合 20x20 像素
  • 使用 Fetch API 时捕获“无法加载资源”

    我试图在使用 Fetch API 时捕获一堆与同源策略相关的错误 但没有成功 window onerror message file line col error gt console log error window addEventLi