2010-01-01 72 views
1

您好(&新年快乐!)如何使用JQuery从远程REST API获取XML?

有没有对我如何使用jQuery从远程REST API获取XML,只是显示XML的例子吗?我只需要一点帮助就可以完成任务。

请求细节:

https://{username}:{password}@api.opsourcecloud.net/oec/0.9/myaccount 

响应详细信息:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ns3:Account xmlns:ns2="http://oec.api.opsource.net/schemas/organization" .. >  
<ns3:userName>rdyer</ns3:userName> 
    <ns3:fullName>Joe Public</ns3:fullName> 
    <ns3:firstName>Joe</ns3:firstName> 
    <ns3:lastName>Public</ns3:lastName> 
    <ns3:emailAddress>[email protected]</ns3:emailAddress> 
    <ns3:orgId>1831c1a9-9c03-44df-a5a4-f2a4662d6bde</ns3:orgId> 
    <ns3:roles> 
     <ns3:role> 
      <ns3:name>primary administrator</ns3:name> 
     </ns3:role> 
    </ns3:roles> 
</ns3:Account> 

回答

7

使用jQuery.get方法。

例如:

$.get(
    'https://{username}:{password}@api.opsourcecloud.net/oec/0.9/myaccount', 
    function(data) { alert(data); } 
); 

编辑:出于安全原因,您不能使用AJAX来从不同的域获取数据。因此,你需要编写一个服务器端脚本来从其他域获得数据,然后调用,使用$.get

+0

出于某种原因,它不显示数据。 我与不同的外部URL试了一下,它也不能工作。 $获得('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Earth%20Day',function(数据){警报( “data加载:” +数据) ;}); 任何想法为什么? – Simon 2010-01-01 17:58:44

+0

对我来说,由于超时而没有显示数据。我还没有想出如何解决这个问题呢。 – Anton 2010-04-14 14:27:11

0

如果你只是想显示REST服务的结果,你不关心格式或任何东西,这是你可以做什么:

 <script> 
     .... 

     $.ajax('<your_rest_service_url>', { 
      dataType:'xml', 
      data:{}, 
      type:'GET', 
      success:function(data, status, response) { 
       var tmp=response.responseText; // THIS IS THE TRICK 
       $('#result').text(tmp); 

     .... 
     </script> 

     <span id="result"></span> 

的诀窍就在于用“数据”参数(就像你想的那样......以及互联网上其他人告诉你要做的事)。请记住,这是快速和肮脏的。

+0

数据属性是用于将数据发送到服务器不包括用于处理每个JQuery的API响应: 数据 类型:PlainObject或字符串 数据要被发送到服务器。它被转换成查询字符串,如果还不是字符串的话。它附加到GET请求的url。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个Array,jQuery将基于传统设置的值使用相同的键序列化多个值 – 2014-05-09 14:45:30