我试图使用jQuery从MailChimp RSS提要中提取标题和描述。
我正在尝试:
$.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。
答案 0 :(得分:2)
您需要在使用jquery(https://api.jquery.com/jQuery.parseXML)
查询之前解析XMLvar xmlDoc = $.parseXML(xml);
var $xml = $(xmlDoc);
$xml.find("item");
将有效数据类型设置为xml
答案 1 :(得分:2)
未捕获的SyntaxError:意外的令牌&lt;上 http://us10.campaign-archive1.com/feed?u=21a65076da97205b5e5ff33e6&id=cc8bfc765e&callback=jQuery214010618008393794298_1436280190025&_=1436280190026
上述错误是由于JSONP要求返回的数据是有效的JSON / javascript,而XML不是。
不幸的是,在您的情况下需要JSONP,因为在此特定服务器上未启用CORS。 (见CORS for Apache)
结果是只有在返回的数据可以更改为JSON时才能使用jQuery。
我刚试过curl
,它似乎工作正常,对我来说没有404错误,也许你需要使用代理?并确保引用url,因为角色&
是在shell中专门处理的。
curl 'http://us10.campaign-archive1.com/feed?u=21a65076da97205b5e5ff33e6&id=cc8bfc765e'
如果您要使用curl,则可以有多个选项来解析xml,例如xmllint,请参阅How to parse XML using 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