Пустой ответ при асинхронной загрузке видео Вконтакте?

Есть простая форма в которой указывается имя, описания и само видео, которое загружается вконтакте асинхронно
<?php
require 'private/config.php';
header('Access-Control-Allow-Origin: http://*.vk.com');
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Video</title>
    <script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript"></script>
    <script type="text/javascript">
        var config = <?=json_encode($config) ?>;
        var vk_init = { apiId: config.vk.id };
        var form;
        addEventListener('load', function() {
            VK.init(vk_init);
            form = document.forms[0];
            form.addEventListener('submit', submit);
        });

        function submit(e) {
            e.preventDefault();
            var name = document.getElementsByName('name')[0].value;
            var description = document.getElementsByName('description')[0].value;
            var video_info = {
                gid: 45661650,
                name: name
            };
            if (description)
                video_info.description = description;
            VK.Api.call('video.save', video_info, vk_save);
            return false;
        }

        function vk_save(vk_data) {
            if (vk_data.error)
                console.log(vk_data.error);
            else {
                var data = new FormData(form);
                var ajax = new XMLHttpRequest();
                ajax.open('post', vk_data.response.upload_url);
                ajax.onloadend = function() {
                    console.log(ajax);
                };
                ajax.send(data);
            }
        }
    </script>
</head>
<body>
<form method="post" enctype="multipart/form-data">
    <input type="text" name="name" placeholder="Назва" required />
    <input type="text" name="description" placeholder="Опис" />
    <input type="file" name="video_file" />
    <input type="submit" />
</form>
</body>
</html>

В ответ я получаю
c11b051e96d8.png
кроме этого Chrome выдает ошибку
XMLHttpRequest cannot load http://cs523100.vk.com/upload_video.php?act=add_vi.... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'highway' is therefore not allowed access.

Хотя видео загрузилось из именем и описанием
В Firefox без предупреждения тоже не обошлось
Use of getPreventDefault() is deprecated. Use defaultPrevented instead.

а responseType и responseText пусты также
  • Вопрос задан
  • 3613 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Wol_fi
php, js, mysql, highload
Если мне не изменяет память, то апи vk не отдаёт заголовок Access-Control-Allow-Origin для кроссдоменных ajax(через XMLHttpRequest) запросов(о чём и говорит вам хром). Попробуйте использовать JSONP. Например:
<script src="https://api.vk.com/method.name&params=blabla&callback=myFunc"></script>
<script>
function myFunc(response){
console.log(response);
}
</script>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы