2010-09-08 23 views
0

我使用這個腳本從RSS刮,查看其他網站:jQuery的XML/RSS刮的問題

$.ajax({ 
    url: "http://www.thriveafricastore.com/rss.php?type=rss", 
    type: "GET", 
    success: function(d) { 
      $('item', d).each(function() { 
       var $item = $(this); 
       var title = $item.find('title').text(); 
       var link = $item.find('link').text(); 
       var description = $item.find('description').text(); 
       var image = $(description).find('img').attr('src'); 
       var price = $(description).find('span.SalePrice').text(); 

       if (price == '') {price = 'See Price'}; 

      var html = '<p><a href="'+link+'" target="_blank"><img src="'+image+'"/><br/>'; 
       html += '<strong>'+title+'</strong><br />'; 
       html += price+'</a></p>'; 

       $('#store').append($(html)); 

      }); 

    } 
}); 

它可以在本地我的電腦上,但是當我嘗試使用它的活網站在線它不起作用,不會拋出任何錯誤(或至少沒有我能找到的)。關於我可能做錯的任何想法以及我如何才能使其工作?

謝謝!

回答

0

敢肯定你正在運行與同源策略,即禁止客戶端的數據檢索跨域在很多情況下問題(見http://en.wikipedia.org/wiki/Same_origin_policyhttp://api.jquery.com/jQuery.ajax/

不知道什麼服務器端語言你使用(如果有的話),但是您可能需要設置一個服務器端腳本來檢索服務器上的文件,打印出其內容,然後在JS中加載該腳本。在PHP中,這看起來像以下:

<?php 

header('Content-Type: text/xml'); 
$ch = curl_init('http://www.thriveafricastore.com/rss.php?type=rss'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
echo curl_exec($ch); 

?> 

你這樣做後,更換網址與你的服務器端腳本的位置(例如,fetcher.php)您的要求。

+0

太棒了!所以一旦我這樣做,我會把php文件放在thriveafricastore.com域的服務器端,或者我想從中檢索數據的端?我正在使用Wordpress進行檢索,所以這應該工作得很好,我想。 – Marc 2010-09-08 13:57:57

+0

實際上它已經正常工作。非常感謝! – Marc 2010-09-08 14:09:50