Ошибка Xampp Access-Control-Allow-Origin - PullRequest
0 голосов
/ 04 июля 2018

Я использую сервер 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 "*"

Моя ошибка: enter image description here

Ответы [ 4 ]

0 голосов
/ 04 июля 2018

Прежде всего, если вы используете withCredentials, подстановочный знак * не может использоваться в качестве значения для Access-Control-Allow-Origin. Вы должны установить адрес хоста вашего сайта вместо *. Вторая причина в том, что Origin является нулевым, что означает, что веб-страница не обслуживается реальным сервером, как упомянуто в комментариях Jaramonda.

0 голосов
/ 04 июля 2018

Попробуйте включить по php

header("Access-Control-Allow-Origin: *");
0 голосов
/ 04 июля 2018

создать URL-адрес BLOB-объекта из массива как этот

window.URL = window.URL || window.webkitURL request_xhr (url, function (buffer) { video_player.src = window.URL.createObjectURL (new Blob ([new Uint8Array (buffer)]))); });

0 голосов
/ 04 июля 2018

Использовать атрибут в перекрестном происхождении видеоэлемента и установить его значение на анонимный:

document.getElementById("videoPlayer").setAttribute("crossorigin", "anonymous");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...