当前位置:首页 > 技术分析 > 正文内容

跨域strict-origin-when-cross-origin vue前端解决

ruisui885个月前 (01-15)技术分析59

今天在对接一个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属性即可。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/323.html

分享给朋友:

“跨域strict-origin-when-cross-origin vue前端解决” 的相关文章

程序员开发必会之git常用命令,git配置、拉取、提交、分支管理

整理日常开发过程中经常使用的git命令![送心]git配置SSH刚进入项目开发中,我们首先需要配置git的config、配置SSH方式拉取代码,以后就免输入账号密码了!# 按顺序执行 git config --global user.name "自己的账号" git config -...

迁移GIT仓库并带有历史提交记录

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。// 先用--bare克隆裸仓库 git clone git@gitee.com:xxx/testApp...

「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作

一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockershim。在V1.24起的版本的kubelet就彻底移除了dockershim,改为默认使用Conta...

你感动了吗?佳能超规格镜头 RF 24-105mm F2.8深度测评

如果要你选一支用作多题材创作的挂机镜头,那我相信很多人会选择24-105mm这个焦段的镜头。作为一支可以实现从广角到长焦的变焦镜头,24-105mm有着丰富的焦段选择。只是基于镜头体积以及光学结构上的限制,此前的24-105mm镜头只能恒定在F4的光圈。而佳能打破了这一限制,将实用焦段和恒定光圈完美...

Gemini应用在Android上广泛推出2.0闪电模式切换器

#头条精品计划# 快速导读谷歌(搜索)应用的测试频道在安卓设备的双子应用中推出了2.0闪电实验功能,现已向稳定用户开放。双子应用通过谷歌应用运行,目前推出的15.50版本中,用户可通过模型选择器体验不同选项,包括1.5专业版、1.5闪电版和2.0闪电实验版。2.0闪电实验模型提供了更快的响应速度和优...

vue 开发规范

项目运行指南(#项目运行指南)开发本地环境(#开发本地环境)开发相关插件/工具(#开发相关插件工具)开发规范(#开发规范)vue(#vue)【数据流向】(#数据流向)【慎用全局注册】(#慎用全局注册)【组件名称】(#组件名称)【组件中的 CSS】(#组件中的-css)【统一标签顺序】(#统一标签顺序...