加载 VTT 文件时出现跨域错误

2023-12-23

我刚开始在 HTML 5 中使用音频标签,并且想要构建一个播放器。我想在轨道标签中使用 VTT 文件进行测试,看看隐藏式字幕如何工作。

这是我的代码:

<audio controls>
    <source src="myaudio.mp3" type="audio/mpeg">
    <track kink="caption" src="myaudio.vtt" srclang="en" label="English">
</audio>

根据我读到的内容,跟踪器应该适用于音频和视频,从可访问性的角度来看,这是有意义的。没有意义的是我尝试加载它时出现的错误:

"Text track from origin 'file://' has been blocked from loading: Not at same origin as the document, and parent of track element does not have a 'crossorigin' attribute. Origin 'null' is therefore not allowed access."

在查找 crossorigin 属性时,我收到很多关于 CORS 以及“匿名”和“用户证书”的预期值的令人困惑的文章。尝试任一结果都会导致类似的错误。

关于为什么这行不通的任何想法?


这是一篇旧帖子,但我在谷歌搜索时看到的第一个帖子Text track from origin 'SITE_HOSTING_TEXT_TRACK' has been blocked from loading: Not at same origin as the document, and parent of track element does not have a 'crossorigin' attribute. Origin 'SITE_HOSTING_PAGE' is therefore not allowed access.

OP 似乎在本地遇到了这个问题,他可以通过禁用 Chrome 的网络安全来解决这个问题,如上所示。但是,当用户从不同的域访问他们的文本轨道时,更经常会看到这种情况。要在生产环境中为所有用户修复该问题,您需要做两件事:

  1. 将正确的 CORS 标头添加到托管 VTT 文件的站点。
  2. Add the crossorigin="anonymous"属性到您网站的音频/视频元素。

如果您无权访问托管视频文件的网站,您可能会陷入困境。但如果你这样做,你应该添加标题Access-Control-Allow-Origin:'*'。我在 Node/Express 服务器上处理它,如下所示:

   var app = express()
    app.use(function (req, res, next) {
      res.header('Access-Control-Allow-Origin', '*')
      res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
      next()
    })

音频/视频元素是一个更容易修复的方法。在您网站的 HTML 页面中,添加以下 crossorigin 属性。

<audio controls crossorigin="anonymous">
    <source src="myaudio.mp3" type="audio/mpeg">
    <track kind="caption" src="my_file_hosted_on_a_different_domain.vtt" srclang="en" label="English">
</audio>

我希望这个答案对某人有所帮助...这是一个需要解决的烦人问题。

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

加载 VTT 文件时出现跨域错误 的相关文章

随机推荐

  • 在 Unity3d 中打开 iPhone 和 Android 设备相机

    我正在开发一个应用程序 需要在全视图中打开设备摄像头 并且我正在为 iOS 和 Android 制作这个应用程序 那么谁能告诉我如何在 Unity 中为所有 Android 和 iPhone 设备打开全屏设备摄像头 这对我来说会有很大的帮助
  • 选择另一个选项卡时的 popToRootViewController

    Context 我同时使用 TabViewController 和 NavigationController 这两个选项卡是RECENT and POPULAR他们会显示帖子列表 想象你在里面RECENT选项卡并单击帖子 您将进入posts
  • 是否可以设置现有 Azure blob 的内容处置?

    基于刺激在这里的答案 Azure 存储 API 内容配置 https stackoverflow com questions 20719641 azure storage api contentdisposition 以及在这里找到的信息
  • 如何使用 PendingIntent 从服务到客户端/活动进行通信?

    我一直在 Android 开发者网站上阅读以下文本 特别是在框架主题 gt 服务 gt 启动服务 http developer android com guide topics fundamentals services html Star
  • if else 在mysql中查询

    我需要 mysql 查询中嵌套 if else 条件的示例 您还可以将 case 语句用于 if else 条件 SELECT CASE field1 WHEN A THEN value is A WHEN B THEN value is
  • 为什么“splatting”关键字参数时 ** 是可选的?

    鉴于此方法定义 def foo a nil b nil p a a b b end 当我使用单个哈希参数调用该方法时 哈希总是隐式转换为关键字参数 无论 hash b 1 foo hash gt a gt nil b gt 1 foo ha
  • 在 Typescript 中创建 `toFunc` 泛型方法?

    我有一个 Ts 模型 需要填充一些属性 当前的代码简化是 var claimSummaryDetails Name this store selectSync currentUser Result Family find m gt m Me
  • 上传资源文件时,createBlockOutputStream 中 Spark HDFS 异常

    我正在尝试在集群中运行我的 JARyarn cluster但一段时间后我遇到了例外 最后INFO在失败之前是Uploading resource 我已经检查了所有安全组 确实如此hsdf ls成功但仍然收到错误 bin spark subm
  • Mapbox 与 Angular 6.“找不到地图容器”错误

    我正在开发我的第一个角度网络应用程序 我想介绍一些类似于谷歌地图的东西 由于新的计费策略 我不想使用最后一个 所以我尝试了 MapBox 按照教程 我成功创建了我需要的地图 问题是 我不知道如何在角度分量上显示它 我为地图生成了这个文件 并
  • 此上下文中仅支持原始类型或枚举类型

    我已经看到了很多关于这个主题的问题 但我无法对其中任何一个真正解决我所看到的问题进行排序 我有一个活动实体 用于跟踪分配给哪个员工以及哪个员工创建了记录并更新了记录 如果我删除 where a AssignedEmployee curren
  • PHP获取外部页面内容

    我从另一个网站获取 htmlfile get contens 我的问题是如何获得特定的标签值 假设我有 div p class paragraph 1800 p div 我怎样才能获得段落的值 谢谢 如果这个例子真的那么简单 你可以只使用正
  • 如何从 java 客户端正确使用 Prometheus Histogram 来跟踪大小而不是延迟?

    我有一个处理集合的 API 该API的执行时间与集合大小有关 集合越大 花费的时间就越多 我正在研究如何使用普罗米修斯做到这一点 但不确定我是否正确地做事 该领域的文档有点缺乏 我做的第一件事是定义一个摘要指标来衡量 API 的执行时间 我
  • 获取“单例类型”的类型

    我们可以通过 Shapeless 创建文字类型 import shapeless syntax singleton var x 42 narrow x Int 42 42 但我该如何操作Int 42 如果甚至不可能创建类型别名 则作为类型
  • python 中的纯文本格式[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个用 python 创建
  • iOS 如何让 MapKit 显示自定义室内地图?

    我正在尝试创建我正在工作的办公室的地图 我有一个高分辨率图像 并且希望将其自动旋转到用户前进的方向 从而允许用户在地图上导航 我认为这可以使用 CoreMotion CoreLocation 和 UIScrollView 来完成 但这似乎涉
  • 错误:字符串类型的值没有成员 ComponentsSeparatedByCharactersInSet

    以下代码引发以下错误 字符串类型的值没有成员组件ComponentSeparatedByCharactersInSet 此代码来自另一个项目 该项目之前在 swift 版本 1 或 2 中有效 但不再有效 import Foundation
  • C++/STL 是否支持按属性对对象进行排序?

    我想知道STL是否支持这一点 假设我有一堂这样的课 class Person public int getAge const double getIncome const 和一个向量 vector
  • Scala 中抽象特征的语义

    我想知道使用的语义是什么abstract关键字与 a 组合trait is 如果该特征没有定义任何抽象方法 则abstract关键字不会阻止我创建实例 scala gt abstract trait T defined trait T sc
  • 未解析的外部符号——模板类[重复]

    这个问题在这里已经有答案了 可能的重复 C 模板 链接错误 https stackoverflow com questions 1353973 c template linking error 我正在尝试实现选择排序 但我不断收到错误 打印
  • 加载 VTT 文件时出现跨域错误

    我刚开始在 HTML 5 中使用音频标签 并且想要构建一个播放器 我想在轨道标签中使用 VTT 文件进行测试 看看隐藏式字幕如何工作 这是我的代码