2013-07-11 21 views
0

所以我有一個簡單的任務,從一個不是我們的服務器得到一個XML飼料。足夠簡單,但即時通過運行允許原點控制問題和& callback =標籤不解決問題。jQuery的.get從URL的XML文件

$.get("http://www.buytopia.ca/feed",data,jloop(),"xml"); 

function jloop(){ 
     var count=0; 
     //dummy code 
     document.write("please work"); 
     do{ 
      document.write(count); 
      count++; 
     } 
     while (count<10); 

    }; 

所以,當我運行此,則get呼叫待,不retieving。我嘗試了不同的提要,比如美國航空航天局,但增加了回撥=不刪除訪問源問題。我所需要的只是一小部分代碼,用於獲取Feed,,最好是,因爲我們可以訪問它並知道它的權限信息。然後我可以開始解析它。任何幫助將是偉大的!謝謝!

+0

'&callback ='用於JSONP,而不是XML。 – Barmar

+1

所以我堅持做一個代理呢? – Japes

+0

是的,這可能是對的。 – Barmar

回答

0

你可以做一個AJAX調用本地PHP文件(假設你叫currency.php),並把它通過PHP中,例如(PHP的是歐洲央行的網站,對於開發者 - 的Ajax是我的)

$XML=simplexml_load_file("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"); 

    //the file is updated daily between 2.15 p.m. and 3.00 p.m. CET 

    foreach($XML->Cube->Cube->Cube as $rate){ 
     //Output the value of 1EUR for a currency code 
     echo '1&euro;='.$rate["rate"].' '.$rate["currency"].'<br/>'; 

     if ($rate["currency"]=='USD') { 
      echo 'EUR-> USD RATE: '.$rate["rate"], '<br/>'; 
     } 
     //-------------------------------------------------- 
     //Here you can add your code for inserting 
     //$rate["rate"] and $rate["currency"] into your database 
     //-------------------------------------------------- 
    } 

然後Ajax調用會是這樣的:

<script> 
$.ajax({ 
     url: 'currency.php', 
     type: 'POST', 
     data: {myCurrency: curr, 
       myPriceAmt: amount }, 
     success: function(data){ 
      // do any manipulations here 

     } 
}); 
</script> 

祝你好運!

0

是buytopia你的域名。你不能通過域名進行Ajax調用。它被稱爲跨站點腳本。

https://en.wikipedia.org/wiki/Cross-site_scripting

+0

不,它不是我的域名。它來自大學有權訪問的另一個項目。 – Japes

+0

這是一個安全風險,大多數瀏覽器都不允許你跨域進行ajax調用。你可以在你自己的域中創建一個代理。在服務器端調用第三方調用服務(buytopia),然後返回XML。 – Thomas

+0

是的,我知道這一點。讓我以這種方式給你。我的電腦現在可以查看xml供稿。它通過http執行。所以他們沒有辦法在代碼中做到這一點,並解析它?即時在本地運行此模塊 – Japes