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, предлагает такой подход).