javascript - 由于 CORB,无法获取 OG 数据
问题描述
我正在尝试使用open-graph-scraper
Vue.js 来抓取 OG 数据,但由于 Chrome 中的 CORB 而被阻止。对于我使用 Node 运行的脚本来说它工作正常,但是有没有解决这个问题或另一个从输入 URL 获取 OG 数据的方法?
Cross-Origin Read Blocking (CORB) blocked cross-origin response SOME-INPUT-URL with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.
解决方案
CORB 是一个基于“我所要求的就是我收到的”这一理念的标准
如果您在 chrome 中对 CORB 错误进行故障排除,则意味着您的请求方法正在以没有内容类型或与您的请求方法不对应的内容类型得到响应。
在第 3 方 API 中,我建议使用邮递员(非附属)之类的工具来检查响应标头中的传入内容类型。一旦您知道调用的内容类型标头,然后调整您的请求方法以尝试匹配预期的输出。许多 API 使用实现不佳的框架,因此仅仅因为响应格式良好的 JSON 并不意味着标头会显示 JSON。我经常看到标头为“文本/纯文本”的 json 输出。
如果这不起作用,例如某些 api 根本无法响应内容标头 - 另一种方法是使用中间调用来发出请求。例如,使用 AWS API 网关和 AWS Lambda 函数的组合,您可以创建一个路由,该路由将使用节点发出请求,但是您可以在其中获得对响应标头和正文的完全控制。然后,您可以添加所需的内容标头并将其传递回您的客户端。
参考: https ://www.chromium.org/Home/chromium-security/corb-for-developers
推荐阅读
- javascript - 捕获浏览器停止按钮
- reactjs - Typescript:联合类型组件道具的 HOC 道具类型
- geometry - 向现有几何图形添加点
- javascript - Javascript 事件处理程序垃圾收集
- excel - 我写了一些 VBA 代码,我需要从工作表中选择唯一值(用户)并比较密码,然后更改密码
- rust - 在 `RawOrigin:Signed(who)` 上调用 `.into()` 时会做什么以及上下文如何影响它?
- angular - 当检查值是否为空时,我得到:您在预期流的位置提供了“未定义”
- prometheus - Prometheus Alertmanager 自定义警报消息
- django - 当人们在 url 浏览器中键入时,我如何重定向?
- typescript - 打字稿:使用模块扩充在内部对象上添加属性