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),