网站首页 > 技术文章 正文
今天在对接一个hls协议的视频直播流的时候,提示跨域问题,导致一直播放不了,
一直在提示 strict-origin-when-cross-origin 跨域问题。
首先上代码
import "video.js/dist/video-js.css"
import videojs from "video.js"
import "videojs-contrib-hls"
<div class="video" v-for="(item,index) in cameraList" :key="index" v-if="vedioSatatus">
<video
:id="`my-video${index}`"
class="video-js vjs-default-skin"
controls
preload="auto"
crossOrigin='anonymous'
>
<source
:src="item"
type="application/x-mpegURL"
/>
</video>
</div>
代码比较简单,使用video.js 插件播放的视频流。
问题分析
在低版本的chrome中正常播放,但是在76版本的chrome中报错Cross-Origin Read Blocking (CORB) blocked cross-origin response。
首先看到Cross-Origin ,就意思是这个资源跨域被浏览器同源策略限制访问了。
这些个https请求 ,response 返回值都是空。
通过现象看问题的话,有两个。
一个是服务端是不是有能力返回跨域请求头
第二个是video 在vue端 如何设置跨域请求,能允许跨域请求这些https url
方案
1、设置服务端返回跨域请求头信息,如图
2、video 设置允许跨域请求
服务端可以正常返回跨域请求头,那不能跨域,就是因为网页端的原因了。
所以,就得看一下 vue 端如何设置 支持video.js 支持跨域请求了。
其实video.js插件本身是能够设置允许跨域请求,
在HTML5中,一些 HTML 元素提供了对 CORS 的支持, 例如 和 均有一个跨域属性 (crossOrigin property),它允许你配置元素获取数据的 CORS 请求。 这些属性是枚举的,并具有以下可能的值:
anonymous 对此元素的CORS请求将不设置凭据标志。
use-credentials 对此元素的CORS请求将设置凭证标志; 这意味着请求将提供凭据。
如下图,加上跨域属性
这样的话,就不提示跨域请求了,可以正常播放视频了。
所以,总结一句话,在video标签中添加 crossOrigin属性即可。
猜你喜欢
- 2024-12-07 vue3 学习笔记 (二)——axios 的使用有变化吗?
你 发表评论:
欢迎- 最近发表
-
- 用AI做微信小程序的完整步骤_如何用ai制作微信表情包
- 自习室预约的微信小程序设计与实现-计算机毕业设计源码+LW文档
- 微信小程序开发入门指南_微信小程序开发入门教程
- 写字机器人好用吗? 组装就花了5个小时 还要学习软件、录入字体
- 白描网页版 - 高效准确且免费的OCR文字识别工具
- 字体图形面板与图标字体使用_字体图标的优势和劣势
- 作为前端工程师必须懂得的33个CSS核心概念
- Flutter程序员开发炫酷的登录页面 字体库运用 路由学习 源码分享
- 2025Q3开源字体盘点:让你的代码和文档'颜值'飙升!
- Agent杂谈:Agent的能力上下限及「Agent构建」核心技术栈调研分享~
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)