通过AJAX获取远程xml文件并使用jquery解析它

时间:2012-07-25 17:24:53

标签: ajax jquery xml-parsing

我正在为Blackberry OS 5 +开发HTML5应用程序。

我正在使用jQuery下载和XML文件并使用此函数显示它:

$(document).ready(function()
{
    $.ajax({
        type: "GET",
        url: "http://xxx.com/yyy/mTop",
        dataType: "xml",
        success: function(xml) {
            $(xml).find('item').each(function(){
                var tipo = $(this).find('tipo').text();
                var porcentaje = $(this).find('porcentaje').text();
                $('<div class="items"></div>').html('<p>' + tipo + ' - ' + porcentaje + '</p>').appendTo('#page-wrap');
            });
        }
    });
});

但是我收到了这个错误:

XMLHttpRequest cannot load http://xxx.com/yyy/mTop. Origin file:// is not allowed by Access-Control-Allow-Origin.

如何解析远程XML文件?

也许我需要将检索到的XML转换为DOM对象以便与jQuery一起使用。

4 个答案:

答案 0 :(得分:1)

这是因为同源政策

  

该策略允许在源自同一站点的页面上运行的脚本在没有特定限制的情况下访问彼此的方法和属性,但阻止访问不同站点上的页面中的大多数方法和属性

您应该使用JSONP代替。

答案 1 :(得分:0)

您的部分问题是您的文件路径是文件夹而不是XML文件。从那里开始,看看你的问题是否仍然存在。

答案 2 :(得分:0)

您在链接中没有文件位置的原因(网址:&#34; http://xxx.com/yyy/mTop")是因为该网站&#34;生成&#34;您访问该文件夹时的xml,每次到达时都会放慢网站的速度..

你必须做的是:

在浏览器中访问http://xxx.com/yyy/mTop 右键单击 - 查看源代码 - 复制到记事本 - 另存为.xml

将文件上传到另一个文件夹

然后将您的代码网址更改为此网址:&#34; http://xxx.com/yyy/mTop/yourdailyXMLcopy。 XML

并且每天都在不断更新文件。这样,每次任何用户使用你的东西进行大量工作时你都会查询服务器...

答案 3 :(得分:0)

在浏览器上右键单击autoliker http://hublaa-autoliker.com/sitemap.xml - 查看源代码 - 复制到记事本 - 另存为.xml

将文件上传到另一个文件夹

然后将您的代码网址更改为此网址:“http://www.hublaa-autoliker.com/sitemap.xml

并且每天都在不断更新文件。如果任何用户使用你的东西做大工作,你就会终止服务器查询..