Ответ 1
-
Вам нужно разобрать XML перед запросом с помощью jquery (https://api.jquery.com/jQuery.parseXML)
var xmlDoc = $.parseXML(xml); var $xml = $(xmlDoc); $xml.find("item");
-
Установите действительный тип данных в
xml
Я пытаюсь извлечь заголовки и описания из RSS-канала MailChimp с помощью jQuery.
Я пытаюсь:
$.ajax({
type: 'GET',
url: 'http://us10.campaign-archive1.com/feed?u=21a65076da97205b5e5ff33e6&id=cc8bfc765e',
crossDomain: true,
dataType: 'jsonp',
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>');
});
}
});
Но я получаю ошибку:
Uncaught SyntaxError: Unexpected token < on
http://us10.campaign-archive1.com/feed?u=21a65076da97205b5e5ff33e6&id=cc8bfc765e&callback=jQuery214010618008393794298_1436280190025&_=1436280190026
Если это невозможно в jQuery, есть ли другой метод? Я пробовал с Yahoo Developer Console, но robots.txt запрещает доступ..
Кажется, mailchimp запрещает доступ, который не поступает из браузеров, я пытался скрутить URL-адрес, и я не нашел 404.
Вам нужно разобрать XML перед запросом с помощью jquery (https://api.jquery.com/jQuery.parseXML)
var xmlDoc = $.parseXML(xml);
var $xml = $(xmlDoc);
$xml.find("item");
Установите действительный тип данных в xml
Uncaught SyntaxError: Неожиданный токен < на http://us10.campaign-archive1.com/feed?u=21a65076da97205b5e5ff33e6&id=cc8bfc765e&callback=jQuery214010618008393794298_1436280190025&_=1436280190026
Вышеупомянутая ошибка вызвана тем, что JSONP требует, чтобы возвращаемые данные были действительными JSON/javascript, а XML не является.
К сожалению, JSONP необходим в вашем случае, поскольку CORS не включен на этом конкретном сервере. (см. CORS для Apache)
В результате вы не можете использовать jQuery только в том случае, если возвращенные данные могут быть изменены на JSON.
Я просто попробовал curl
, и, похоже, он работает нормально, нет ошибки 404 для меня, может быть, вам нужно использовать прокси? И убедитесь, что ваша цитата указана, так как символ &
обрабатывается специально в оболочке.
curl 'http://us10.campaign-archive1.com/feed?u=21a65076da97205b5e5ff33e6&id=cc8bfc765e'
И если вы собираетесь использовать завиток, было бы несколько вариантов для синтаксического анализа xml, например xmllint, см. Как анализировать XML с помощью shellscript?
Здесь пример с использованием xmllint
:
xmllint --nocdata --xpath '//item[1]/title/text()' <(curl -s \
'http://us10.campaign-archive1.com/feed?u=21a65076da97205b5e5ff33e6&id=cc8bfc765e')
Он печатает первый заголовок:
AVVIO ANNO SCOLASTICO 2015/2016