$(document).ready(function() {
$(function () {
url = 'http://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml?fmt=xml';
$.ajax({
type: "GET",
url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
dataType: 'json',
error: function () {
alert('Unable to load feed, Incorrect path or invalid feed');
},
success: function (xml) {
values = xml.responseData.feed.entries;
$.each(values, function (i) {
$('#results').append('<h1>' + values[i].title + '</h1>');
$('#results').append(values[i].content);
});
}
});
});
});
上面的代码在我的jsfiddle中运行正常 - 但实施时它始终存在错误alert()
函数
我的控制台报告: (报告以下本地和实时服务器)
XMLHttpRequest无法加载http://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml?format=xml。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; null&#39;因此不允许访问。 home.html:1 XMLHttpRequest无法加载http://bsnm.s3.amazonaws.com/IVC/103b8b081e0c4ee0ef0d57d45ed11104。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; null&#39;因此不允许访问。
答案 0 :(得分:0)
我能够使用jQuery v1.1.1在我的本地盒子上重现这个bug,但是当我尝试使用jQuery v2.1.1时它会正常加载。
您使用的是旧版jQuery吗?
注意:我在本地测试的代码与你的jsFiddle完全相同,只不过我改了
document.location.protocol
到'http://'
并添加了<script src="https://code.jquery.com/jquery-2.1.1.js"></script>
答案 1 :(得分:0)
出于某些奇怪的原因 - 问题是:
url: document.location.protocol +
当我更换&#39; document.location.protocol
&#39;实际http:
它可以正常工作。
我正在加载jQuery v 3.1 - 不确定这是否重要。如果有人对为什么或其原因有所了解,请加我的答案!
ie。现在可以正常工作。
url: 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),