从API,Javascript,Ajax解析XML响应

时间:2010-10-26 17:48:31

标签: javascript ruby-on-rails xml ajax

我有一个rails应用程序,我想使用Javascript(ajax)解析来自API的xml响应。 我试过了:

$(document).ready(function()
{
  $.ajax({
    type: "GET",
    url: "http://localhost:3000/users/mike.xml",                                
    dataType: "xml",
    success: parseXml

  });
});

function parseXml(xml)
{
...
}

但不起作用。当我用本地xml文件e.x url:'data.xml'更改'url'时, 工作正常!

我如何解析此回复?

任何帮助都将受到高度赞赏: - )

3 个答案:

答案 0 :(得分:0)

正如Max建议的那样,在Firefox浏览器中安装和使用Firebug非常有帮助,因此您可以观看GET请求和响应。你的问题没有太多可以继续,但这听起来像是“服务器”端的一个问题。

当你说它不起作用时,你的意思是不调用parseXml(xml)吗?在您的AJAX请求中,您定义了一个成功处理程序 - 如果您的GET请求失败,则永远不会调用该处理程序。我发现定义一般回调(JQuery的'完整',它看起来像你正在使用)更有用,因为无论响应是什么,它都会被调用。然后,您只需自行检查成功或失败,并采取适当的措施。

答案 1 :(得分:0)

尝试从您的网址中删除“.xml”。我相信AJAX调用默认接受xml响应,因此在请求标头和URL中使用xml可能会让控制器感到困惑。这只是一个猜测。

答案 2 :(得分:0)

如果网址与包含JavaScript的网页不在同一个域中,则由于跨域安全策略,您的浏览器会阻止其工作。检查您是否通过一个与您在ajax调用中请求的URL完全相同的URL呈现页面(因此在localhost示例中确保您没有在127.0.0.1 URL上运行服务器,或类似那)