Blob отправляется через windows.open, но не через ajax - PullRequest
0 голосов
/ 28 августа 2018

Я использую RecordRTC для записи видео, а затем сохраняю его на сервере.

У меня проблема. С помощью классического метода, предложенного автором, я могу отправить видео, оно работает:

    xhr('temoignages/save.php', formData, function (fName) {
            window.open(location.href + fName);
        });

        function xhr(url, data, callback) {
            var request = new XMLHttpRequest();
            request.onreadystatechange = function () {
                if (request.readyState == 4 && request.status == 200) {
                    callback(location.href + request.responseText);
                }
            };
            request.open('POST', url);
            request.send(data);
        }

Но мне не нравится тот факт, что он открывает новые окна. Он не работает все время из-за блокировки всплывающих окон.

Так что я изменил это на:

    $.ajax({
            type: 'POST',
            url: 'temoignages/save.php',
            data: formData,
            processData: false,
            contentType: false
        }).done(function(data) {
               console.log(data);
        });

Но это не работает. Я получаю это в консоли:

        Initialized recorderType: MediaStreamRecorder for output-type: video
            started recording!
            Stopped recording video stream.
            Recorder state changed: stopped
            video/webm -> 46.8 KB
            finished recording:  {video: Blob(46849)}
            Invalid temp_name: 
            XHR finished loading: POST ".../save.php".

И когда я использую один и тот же код для отправки mp3-файла, он работает с обоими методами. Чего мне не хватает?

...