我正在尝试将 Goodreads API 用于我的业余项目,但遇到了一些问题。以下 URL 返回 XML 数据。如果我使用 datatype: 'xml'
然后我收到跨域错误,这就是为什么我使用了“jsonp”但仍然得到 Uncaught SyntaxError: Unexpected token <
错误。我做错了吗?
$.ajax({
url : 'http://www.goodreads.com/user/show/userid.xml?key=developerKey&id=userId,
method : 'get',
dataType : 'jsonp',
success : function (data) {
console.log($.parseXML(data));
}
});
最佳答案
使用支持 CORS 的外部代理来发出 goodreads 请求。
至少 Yahoo YQL 可以用作代理,如本示例代码中所做的那样(它是免费的,不需要 API key !)。 YQL 返回包装在 /query/results
内的 Goodreads XML 响应。
var url = "http://www.goodreads.com/user/show/userid.xml" +
"?key=developerKey&id=userId";
$.get("http://query.yahooapis.com/v1/public/yql",
{
q: "select * from xml where url=\""+url+"\"",
format: "xml"
},
function(xml){
// contains XML with the following structure:
// <query>
// <results>
// <GoodreadsResponse>
// ...
console.log(xml);
}
);
此答案中有关 YQL 的更多信息: https://stackoverflow.com/a/8579158/1068385
关于jquery - 如何解析 Goodreads API 的 XML 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399100/