jquery - 如何解析 Goodreads API 的 XML 响应?

标签 jquery ajax

我正在尝试将 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/

相关文章:

javascript - Jquery Ajax IE后访问getElementsByName数组

jquery - 在 "ID contains"选择器上的选择器之后应用 CSS

php - 从 Controller JSON 传递一个值以在 CodeIgniter 中查看 Ajax

jquery - 在 Django 中获取 POST 值

php - Live Search 在 keyup 后不删除 'old' 数据

php - jquery - 选择所有带有 js 数组名称的复选框

javascript - 在动态单选按钮中仅选择一个

javascript - 如何增加 Accordion 高度

javascript - 提交表单时显示加载 GIF

JavaScript 数组未初始化