jquery / ajax Feed 解析器脚本无法在页面上运行
jquery / ajax feed parser script not working on page
$(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。请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许 Origin 'null' 访问。
home.html:1 XMLHttpRequest 无法加载 http://bsnm.s3.amazonaws.com/IVC/103b8b081e0c4ee0ef0d57d45ed11104。请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许来源 'null' 访问。
我能够使用 jQuery v1.1.1 在我的本地机器上重现这个错误,但是当我尝试 jQuery v2.1.1.
时它加载正常
您使用的是旧版本 jQuery 吗?
注意:我本地测试的代码和你的jsFiddle完全一样,只是我改了
document.location.protocol
至 'http://'
并添加了 <script src="https://code.jquery.com/jquery-2.1.1.js"></script>
出于某种奇怪的原因 - 问题是这样的:
url: document.location.protocol +
当我用实际 http:
替换“document.location.protocol
”时,它工作正常。
我正在加载 jQuery v 3.1 - 不确定这是否重要。如果有人了解 为什么 或这样做的原因,请添加到我的回答中!
即下面的 现在可以使用了。
url: 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
$(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。请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许 Origin 'null' 访问。 home.html:1 XMLHttpRequest 无法加载 http://bsnm.s3.amazonaws.com/IVC/103b8b081e0c4ee0ef0d57d45ed11104。请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许来源 'null' 访问。
我能够使用 jQuery v1.1.1 在我的本地机器上重现这个错误,但是当我尝试 jQuery v2.1.1.
时它加载正常您使用的是旧版本 jQuery 吗?
注意:我本地测试的代码和你的jsFiddle完全一样,只是我改了
document.location.protocol
至 'http://'
并添加了 <script src="https://code.jquery.com/jquery-2.1.1.js"></script>
出于某种奇怪的原因 - 问题是这样的:
url: document.location.protocol +
当我用实际 http:
替换“document.location.protocol
”时,它工作正常。
我正在加载 jQuery v 3.1 - 不确定这是否重要。如果有人了解 为什么 或这样做的原因,请添加到我的回答中!
即下面的 现在可以使用了。
url: 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),