【问题标题】:jquery how to get data from API xmljquery如何从API xml获取数据
【发布时间】:2011-05-17 06:36:26
【问题描述】:

我需要从返回 xml 格式的 API 获取数据。这是 api 网址:http://api.tubeupdates.com/?method=get.status&lines=all&format=xml

这是我的 jquery 代码:

$(document).ready(function(){
                $.get('http://api.tubeupdates.com/?method=get.status&lines=all&format=xml', function(d){

                    $(d).find('line').each(function(){
                        var $line = $(this).find('name').text()
                        var $mex = $(this).find('message').text()
                        $('#status').append($line+'<br>'+$mex+'<br><br>');
                    });
                });
            });

div #status 返回空。我的 jquery 代码看起来不错,因为它可以使用物理 xml 文件。我做错了什么?

提前致谢,

毛罗

【问题讨论】:

    标签: jquery xml ajax api


    【解决方案1】:

    你不能像这样跨域获取 XML,如果服务器支持,你必须使用JSONP。 XML 必须通过 XMLHttpRequest 获取...这被 same origin policy 阻止。

    不幸的是,它看起来 不像该网站支持 JSONP,尽管它确实支持常规 JSON:http://api.tubeupdates.com/?method=get.status&lines=all&format=json

    【讨论】:

    • 好的,如果我使用 json 来获取数据,它会起作用吗?对不起,我的无知,我对此很陌生:)
    • @Mauro74 - 不,它必须是 JSONP,它基本上创建了一个 &lt;script&gt; 标记,查看文档并测试自己......似乎没有任何支持的暗示:tubeupdates.com/documentation 该站点的作者必须添加它,否则您必须通过自己的站点代理请求。
    • @Nick 好的,我会尝试联系 api 的作者,看看他是否可以添加 JSONP。无论如何,我不知道如何代理请求,有什么好的教程/建议吗?谢谢:)
    • @Mauro74 - 取决于你在哪个平台上,你有什么服务器端? PHP、ASP.Net、ruby、其他?
    • 我使用 PHP 作为服务器端语言
    【解决方案2】:

    从此变量行中删除$并添加:

    var line = $(this).find('name').text();
    var mes  = $(this).find('message').text();
    $('#status').append(line + '<br/>' + mes + <br/>);
    

    【讨论】:

      猜你喜欢
      • 2014-01-15
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      相关资源
      最近更新 更多