我正在使用Xampp
服务器访问我的视频文件,然后在我的网站上播放。我正在使用XMLHttpRequest
获取视频文件,然后将其作为视频播放器的源。但是我遇到了错误。我试图通过插入Header set Access-Control-Allow-Origin "*"
来解决问题,但仍然无法解决问题。我已经给出了代码和下面的错误。请帮助我。
我也不想对显示视频的其他方法有任何建议。我希望使用XMLHttpRequest
。
我的示例代码:
<html>
<head>
<meta charset="utf-8"/>
<title></title>
</head>
<body>
<video video-player width="640" height="360" controls></video>
<script>
var video_player = document.querySelectorAll('[video-player]')[0];
// I ORIGINALLY USE MY http://localhost:8080/.... FOR THE 'var url' BUT FOR STACKOVERFLOW I'M USING THE LINK BELOW AS AN EXAMPLE
var url = "http://dash.akamaized.net/akamai/bbb/bbb_1280x720_60fps_6000k.mp4";
request_xhr (url, function (buffer)
{
video_player.src = buffer;
});
function request_xhr (url, cb)
{
var xhr = new XMLHttpRequest;
xhr.withCredentials = true;
xhr.open('get', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function ()
{
cb(xhr.response);
};
xhr.send();
}
</script>
</body>
</html>
我的.htaccess
在目录C:\xampp\htdocs\
中:
Header set Access-Control-Allow-Origin "*"
答案 0 :(得分:0)
首先,如果您使用的是withCredentials
,则通配符*
不能用作Access-Control-Allow-Origin
的值。您必须设置网站的主机地址,而不是*
。第二个原因是Origin
为空,这意味着Jaramonda的评论中提到的实际服务器无法提供网页。
答案 1 :(得分:-1)
在视频元素跨域中使用属性并将其值设置为匿名:
document.getElementById("videoPlayer").setAttribute("crossorigin", "anonymous");
答案 2 :(得分:-1)
尝试通过php启用它
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="amount" name="amount" type="text" maxlength="20" />
答案 3 :(得分:-1)
像这样从arraybuffer创建blob网址
window.URL = window.URL || window.webkitURL request_xhr(url,function(buffer){ video_player.src = window.URL.createObjectURL(new Blob([new Uint8Array(buffer)])); });