【问题标题】:jQuery Pass XML AjaxjQuery 传递 XML Ajax
【发布时间】:2012-06-24 12:35:07
【问题描述】:

我有以下 jQuery

$.ajax({
    type: "GET",
    url: "http://f.cl.ly/items/0i1V1L1k2F440L1m2Y0G/pointdata.xml",
    dataType: "xml",
    success: parseXml
});

function parseXml(xml) {
    $(xml).find('point').each(function() {
        var lat = $(this).children('lat').text();
        var long = $(this).children('long').text();
        alert(lat + long);
    });
}

试图从this XML 文件中读取数据

你还可以看到一个直播的jsFiddle here

由于某种原因,变量 lat 和 long 没有被分配给每个元素。我究竟做错了什么?任何帮助将非常感激。提前致谢。 ​

【问题讨论】:

  • 让我猜猜。 http://f.cl.ly/ 是第三方域名。
  • jsfiddle 不起作用,因为同源策略限制禁止您发送跨域 AJAX 请求。您确定您的实际代码中没有违反此政策吗?因此,除非您的脚本在 http://f.cl.ly/ 上挂起,否则您无法向其发送 AJAX 请求。
  • 通过将其添加为资源对其进行了更新,但仍然没有运气。 jsfiddle.net/STe25/2
  • @jacktheripper 如有疑问,请始终添加 error 回调并调查您收到的 Ajax 错误。
  • @jacktheripper,不,您没有将其添加为资源。您刚刚添加了对它的引用。该文件仍位于 f.cl.ly 上,并且您更新的 jsfiddle 不起作用,因为您收到 404 错误。请使用 FireBug 查看这些错误。因此,正如每个人已经在这里声明的那样:您不能发送跨域 AJAX 调用。

标签: jquery html xml parsing loops


【解决方案1】:

你的parseXML函数works

您可能违反了same origin policy
您不能向其他域发送ajax 请求。

注意 lat + long 连接 字符串 所以 '1' + '2''12' 不是 3
如果希望结果为 3,请先解析为 int。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多