2015-05-19 2 views
0

У меня проблема с URL-адресами xml при получении их фида с использованием пользовательского кода. Я попытался понять, какое решение об этом можно найти в google и здесь, но я не могу понять, как это решить, поэтому мне нужна ваша помощь, спасибо.jQuery и XML- Не удалось прочитать удаленный ресурс

Ошибка, которую я получил: «Запрос на перекрестный запрос заблокирован: политика одного и того же происхождения запрещает чтение удаленного ресурса по адресу http://www.straitstimes.com/news/sport/rss.xml. (Причина: заголовок CORS« Access-Control-Allow-Origin »отсутствует)».

Итак, как реализовать решение для моего кода ниже?

$.ajax({ 
    type: 'GET', 
    url: 'http://www.straitstimes.com/news/sport/rss.xml', 
    contentType: "text/xml", 
    success: function (xml) { 
     $(xml).find("item").each(function() { 
      var title = $(this).find("title").text(); 
      var description = $(this).find("description").text(); 
      var linkUrl = $(this).find("link_url").text(); 
      var link = "<a href='" + linkUrl + "' target='_blank'>Read More<a>"; 
      $('#feedContainer').append('<article><h3>'+title+'</h3><p>'+description+link+'</p>'); 
     }); 
    }, 
     error : function (xhr, ajaxOptions, thrownError){ 
     console.log(xhr.status);   
     console.log(thrownError); 
    } 
}); 
+0

Поскольку это крест запрос домена, проверьте, принимает ли канал JSONP –

+0

. Я согласен с вашим предложением, но для этого я должен использовать XML. – smile

ответ

1

Использование YQL консоли мы можем преодолеть этот запрос перекрестного происхождения ... Просто изменила URL и удалена CONTENTTYPE .. Проверить эту ссылку jsfiddle

http://jsfiddle.net/1rmk8z4k/

$.ajax({ 
type: 'GET', 
url: 'http://query.yahooapis.com/v1/public/yql?q=select * from xml where url ="http://www.thestar.com.my/RSS/News/Education/"', 

success: function (xml) { 
    $(xml).find("item").each(function() { 
     var title = $(this).find("title").text(); 
     var description = $(this).find("description").text(); 
     var linkUrl = $(this).find("link_url").text(); 
     var link = "<a href='" + linkUrl + "' target='_blank'>Read More<a>"; 
     $('#feedContainer').append('<article><h3>'+title+'</h3><p>'+description+link+'</p>'); 
    }); 
}, 
    error : function (xhr, ajaxOptions, thrownError){ 
    console.log(xhr.status);   
    console.log(thrownError); 
} 
}); 
+0

спасибо @ Ramanathan Muthuraman, он отлично работает .. – smile

Смежные вопросы