2011-08-17 181 views
0

在我的HTMLjQuery的阿賈克斯不工作

<div class="result">loading</div> 

我有以下div而我的javascript如下。

$(document).ready(function() { 
     $.ajax({ 
      accept: 'application/rss+xml', 
      url: 'http://www.madhyamam.com/taxonomy/term/19/rss.xml', 
      success: function(data) { 
      $('.result').html(data); 
     } 
    }); 
}); 

但由於某些原因,它似乎並不奏效。

jsfiddle

返回的XML(螢火蟲):

XML Parsing Error: no element found Location: moz-nullprincipal:{9ec69805-af82-4f95-979a-f8e68d415124} Line Number 1, Column 1:

^

解決方案 * 我再見,通過使用雅虎管道的問題。它工作得很好。 *

+0

「似乎沒有工作」是什麼意思?請求是否已發送?回調是否被調用? – Dennis

+1

你已經試過了什麼?例如,你看到請求是以螢火蟲發送的嗎?當你放置斷點時,程序是否停在預期的地方? – fvu

+0

我已更新問題 – esafwan

回答

7

您無法向與當前頁面具有相同域,端口和協議的URL發出Ajax請求。 Same Origin Policy禁止它。

最常見的解決方法是使用服務器端腳本來提取內容並通過Ajax提供內容。

+0

所以我能做些什麼來拉動RSS飼料與JavaScript? – esafwan

+0

我使用雅虎管道再次通過了這個問題。它工作得很好。 – esafwan

0

正如Pekka所說,我們猜你的問題是Ajax無法對其他域URL提出請求。你必須使用服務器端腳本。對於(從Jquery Minime Feed library)測試小PHP服務器端腳本的

例子:

<?php 
header('Content-type: text/xml; charset=utf-8'); 
$url = htmlspecialchars($_GET['url']); 
echo file_get_contents('http://'.$url,0); 
?> 

然後就可以調用像

 
$.ajax({ 
    accept: 'application/rss+xml', 
    url: 'http://youserver/getfeed.php?url=http://www.madhyamam.com/taxonomy/term/19/rss.xml', 
}); 

然而,似乎要展示rss在您的頁面中提供。我去了同樣的問題,使用Jquery Minime Feed library,它幫你做這項工作結束:

$('#test1').minimeFeed('http://index.hu/24ora/rss/'); 

自動使用服務器端腳本,如果需要,併產生相當不錯的輸出。見demo here

希望它有幫助!

+0

我使用雅虎管道再次通過了這個問題。它工作得很好。 – esafwan