2010-01-01 59 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