u3m8格式视频播放,请求不到数据

需求: 播放m3u8格式视频,
思路: 使用videojs-player 插件来解决
代码
ref="videoPlayer"
      :src="src"
      controls
      :loop="true"
      :volume="0.6"
      autoplay
      class="videoplayer"
   />

const src = computed(() => props.playUrl)
问题: 页面可以正常请求到m3u8格式的文件,然后解析请求切片数据,但请求切片数据,就会请求不回来数据,但使用插件,直接播放m3u8文件,可以在浏览器播放,请问这问题会是出现在那里呢?
请求状态截图

img

img

m3u8请求成功了?截图不是显示报错了吗?如果成功了请求回来的内容方便看下截图吗?

原因查找到了,是https页面发起http请求导致的,后台没有对应得httpsf服务,就算http请求被转成https依然解决不了,请问有没有什么能在https页面发起http请求不被拦截得方法?

可以借助被动混合内容的加载方便来突破这一层限制,使用加载图片的方式来发起请求,如下所示:

const img = new Image();
img.src = 'http的请求地址'

https请求中不能直接嵌套http请求,最好是通过iframe嵌套一个页面,然后对应一个新请求

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>正在直播中</title>
    <script src="https://act.mcake.com/fangli/2018/wap/commonjs/jquery.min.js"></script>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js" type="text/javascript" charset="utf-8"></script>
    <link href="https://cdn.bootcss.com/video.js/7.6.5/alt/video-js-cdn.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/video.js/6.6.2/video.js"></script>
    <script src="https://cdn.bootcss.com/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js"></script>
</head>
<!--webkit-playsinline="true"  playsinline="true" 设置苹果手机上播放不自动全屏-->

<body>
    <video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls autoplay
        webkit-playsinline="true" playsinline="true" style="width: 100%; height: 240px;" type="video/m3u8"
        data-setup='{}'>
        <source id="source" src="http://d2zihajmogu5jn.cloudfront.net/elephantsdream/hls/ed_hd.m3u8"
            type="application/x-mpegURL">
    </video>
    <script>
        var myVideo = videojs('myVideo', {
            autoplay: true,
            preload: 'auto',
            /*    poster:'../material/poster.jpg',*/
            //bigPlayButton : false,
            //textTrackDisplay : false,
            //posterImage: false,
            //errorDisplay : false,
        })
        myVideo.play() // 视频播放
        //myVideo.pause() // 视频暂停
        document.addEventListener("WeixinJSBridgeReady", function () {
            myVideo.play() // 视频播放
        }, false);
    </script>
</body>

</html>