我的html中有以下div
<div class="result">loading</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);
}
});
});
但由于某些原因......它似乎没有用。
中返回XML(firebug):
XML解析错误:找不到元素位置: moz-nullprincipal:{9ec69805-af82-4f95-979a-f8e68d415124}行号 1,第1栏:
^
解决方案 * 我再见 - 使用雅虎管道传递问题。它工作正常。 *
答案 0 :(得分:7)
您无法向与当前页面具有相同域,端口和协议的URL发出Ajax请求。 Same Origin Policy禁止它。
最常见的解决方法是使用服务器端脚本来提取内容,并通过Ajax提供服务。
答案 1 :(得分:0)
正如Pekka所提到的,我们猜测您的问题是Ajax无法对其他域URL发出请求。你必须使用服务器端脚本。
用于测试的小型php服务器端脚本示例(来自Jquery Minime Feed library):
<?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 Feed。我去了同样的问题并使用Jquery Minime Feed library结束,这有助于你完成这项工作:
$('#test1').minimeFeed('http://index.hu/24ora/rss/');
如果需要,自动使用服务器端脚本,并生成相当不错的输出。见demo here
希望它有所帮助!