【问题标题】:How do I parse this xml via jquery如何通过 jquery 解析这个 xml
【发布时间】:2025-12-21 21:00:04
【问题描述】:

我有这个url,如您所见,它返回纽约时间的 xml....这是我的 jquery,用于从 xml 中解析出本地时间,但没有得到我想要的

$j(document).ready(function() {
  refresh();
  function refresh() {
    $j.ajax({
      type: "GET",
      url: "http://www.earthtools.org/timezone/40.71417/-74.00639",
      dataType: "xml",
      success: parseXml
    });
  }
  function parseXml(xml) {
     xmlDoc = $j.parseXML( xml ),
     $xml = $j( xmlDoc ),
     $title = $xml.find( "localtime" );
  }
 ....
 ....

我不断收到此错误

XML Parsing Error: no element found Location: moz-nullprincipal:{a09f5192-ba1f-fc4e-8b9e-2cb0ed8001d8} Line Number 1, Column 1:

【问题讨论】:

  • 在 parseXml() 函数的开头添加 console.log(xml) 以检查返回的 xml 有什么问题。我对ajax请求本身有点怀疑:它不是试图克服跨域限制吗?
  • 您是否添加了console.log(xml) 以查看您是否收到了预期的回复?你确定这不是同源政策违规?
  • 它没有进入我的 console.log 我不断收到这个错误...在 firbug ...

标签: javascript jquery web-services api


【解决方案1】:

这似乎是一个跨域脚本。 herehere 描述了类似的问题。使用 JSONP 进行跨域请求。

【讨论】:

  • 如何获得 XML 响应以处理 JSONP 请求?
  • 您可以随时将 xml 片段放入 JSON 对象中:{'data': 'xml here'}
  • 如果您不控制内容来源,则不会。
  • 你是对的。 xml 片段将由回调函数返回。您必须检查是否在服务器端启用了跨域脚本。