Как исправить ошибку XMLHttpRequest при загрузке XML-фида из другого домена с помощью jQuery? - PullRequest
0 голосов
/ 17 июля 2011

Мне нужно загрузить XML-канал из Vimeo, для этого я использую jquery следующим образом:

$(function(){

// Get vimeo feed
$.ajax({
    type: "GET",
    url: "http://vimeo.com/api/v2/<my username>/videos.xml",
    dataType: "xml",
    success: function( xml ) {
        $(xml).find( "video" ).each( function() {
            console.log( $(this).find( "title" ) );
        });
    }
});

});

Но я получаю эту ошибку: XMLHttpRequest не может загрузить http://vimeo.com/api/v2//videos.xml. Origin http://localhost:8888 не разрешено Access-Control-Allow-Origin.

Я использую MAMP, если это имеет какое-либо значение.

1 Ответ

1 голос
/ 17 июля 2011

Пожалуйста, прочитайте vimeo API - Пользователь

Создание URL

http://vimeo.com/api/v2/username/request.output
username Либо ярлык URL, либо идентификатор пользователя, адрес электронной почты НЕ будет работать.
запрос Данные, которые вы хотите. Различные типы запросов перечислены ниже.
output Укажите тип вывода. В настоящее время мы предлагаем форматы JSON, PHP и XML.

Таким образом, вместо того, чтобы делать запрос вроде http://vimeo.com/api/v2//videos.xml, делать запрос как http://vimeo.com/api/v2//videos.json

Теперь вы можете использовать $. GetJSON , чтобы получить такие результаты.

$(document).ready(function() {
    var url = "http://vimeo.com/api/v2/{username}/videos.json?callback=?";
    $.getJSON(url, function(data) {
        var items = [];
        $.each(data, function(key, datum) {
            items.push("<ul>");
            items.push("<li>Title: " + datum.title + "</li>");
            items.push("<li>Tags: " + datum.tags + "</li>");
            items.push("</ul>");
        });
        $("#result").html(items.join(""));
    });
});

Просмотреть демонстрацию: http://jsfiddle.net/naveen/Ssdjp/1/

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