XMLHttpRequest не может загрузить https://api.vineapp.com/timelines/popular. В запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin"

Мне не удалось успешно извлечь популярную временную шкалу из лозы, используя JQuery для выполнения вызова REST.

Когда я использовал этот код:

$.ajax({
            type: "GET",
            crossDomain: true,
            dataType: "json",
            url: "https://api.vineapp.com/timelines/popular",
            success: function(data){
                document.getElementById("#site-wrapper").innerText=data;
            },
            error: function(jqXHR, textStatus, errorThrown){
                var json = JSON.stringify(jqXHR, null, 4);
                document.getElementById("#site-wrapper").innerText=json;
            }
        });

Я получаю эту ошибку:

XMLHttpRequest cannot load https://api.vineapp.com/timelines/popular. No 'Access-Control-Allow-Origin' header is present on the requested resource.

После небольшого исследования, которое я нашел о междоменной проблеме, и короче говоря, я в итоге изменил код на этот.

Новый код:

$.ajax({
            type: "GET",
            dataType: "jsonp", //changed data type to jsonp
            url: "https://api.vineapp.com/timelines/popular",
            success: function(data){
                poke = data;
                document.getElementById("#site-wrapper").innerText=data;
            },
            error: function(jqXHR, textStatus, errorThrown){
                poke = jqXHR;
                var json = JSON.stringify(jqXHR, null, 4);
                document.getElementById("#site-wrapper").innerText=json;
            }
        });

Это изменение позволило мне обойти междоменную проблему, но внесло эту ошибку:

Uncaught SyntaxError: Unexpected token : 

Теперь я понимаю, почему я получил эту ошибку. Это связано с тем, что Vine возвращает данные JSON, а не данные JSONP (я понимаю, что это в основном JSON, но оборачивается вокруг функции или чего-то еще).

Есть ли возможность исправить междоменную проблему при возврате данных JSON? Я пробовал разные варианты выполнения этого звонка, но ни один из них не работает. Любая помощь будет потрясающей, спасибо заранее.

1 ответ

Vine выпустила API-интерфейс oEmbed

Говорится:

Форматы ответов: JSON, XML

К сожалению, кажется, JSONP не поддерживается. Использование прокси на стороне сервера является допустимой альтернативой (ну, Twitter, владелец Vine, предлагает такой подход).

Другие вопросы по тегам