Возможно ли подключиться к RSS-каналу, получить XML-объект, затем разобрать и отобразить его на стороне клиента javascript/AJAX?обрабатывать RSS-каналы с помощью AJAX и только javascript
Спасибо,
Возможно ли подключиться к RSS-каналу, получить XML-объект, затем разобрать и отобразить его на стороне клиента javascript/AJAX?обрабатывать RSS-каналы с помощью AJAX и только javascript
Спасибо,
При условии Same Origin Policy, да. http://www.xml.com/lpt/a/1672 имеет пример (хотя, честно говоря, код не очень хорош, вы запускаете глобальные переменные в первой функции).
Таким образом, это эффективно сможет потреблять фид ТОЛЬКО на тот же домен? – test
В стандартном контексте безопасности - да. Конечно, вы можете прокси-серверы через свой собственный сервер. – Quentin
@Dhaivat - в вопросе не упоминается Phonegap. Вы путаете этот вопрос с [полностью отдельным, который вы задали] (http://stackoverflow.com/questions/6483804/phonegap-rss-feeds-javascript) ?! – Quentin
Технически это возможно.
Однако, существуют некоторые ограничения на стороне браузера: AJAX запросов (XHR/XMLHttpRequest) может быть сделано только на том же домене, на котором размещен яваскрипта скрипт (ы).
Это означает, что сценарий, размещенный на http://example.com/, не может выполнять XHR на http://domain.com/.
Вы можете перепускной это ограничение с помощью прокси- скрипт на стороне сервера. Например: http://example.com/getFeed.php?feed=the_complete_url_of_the_targeted_feed
Да, конечно возможно. Реальный пример следующим образом:
<div id='tagged'></div>
<script type="text/javascript">
$.get('http://stackoverflow.com/feeds/user/40986', function(data){
$(data).find('entry').each(function(){
var $rssLink = $('<a></a>')
.attr('href', $(this).find('link').attr('href'))
.append($(this).find('id').text());
var $divContainer = $('<div></div>');
$rssLink.appendTo($divContainer);
$divContainer.appendTo('#tagged');
});
});
</script>
Использование JQuery я получаю свой собственный StackOverflow RSS-канал и распечатать ссылку на каждую запись.
Я хотел бы получить больше объяснений, считая, что другие говорят, что это невозможно из-за правил XHR. Я копирую/вставляю ваш код на тестовый сайт только сейчас, изменяя URL-адрес и не получая результатов. – Ziggy
Есть ли конкретная причина, почему все это должно быть на стороне клиента? Часть Javascript может легко вызвать скрипт на сервере для выполнения этой работы, а затем передать результаты в часть Javascript. –
Я предпочитаю делать все это на стороне клиента для отладки без развертывания на сервере – test
http://stackoverflow.com/questions/226663/parse-rss-with-jquery –