Javascript 为什么在获取提要时出现以下错误?

Javascript 为什么在获取提要时出现以下错误?,javascript,Javascript,加载失败https://feeds.bbci.co.uk/news/rss.xml: 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://localhost:3000因此,不允许访问。如果不透明响应满足您的需要,请将请求的模式设置为“无cors”,以获取禁用cors的资源。 我的代码如下所示: fetch("https://feeds.bbci.co.uk/news/rss.xml") .then(res => res.json())

加载失败https://feeds.bbci.co.uk/news/rss.xml: 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://localhost:3000因此,不允许访问。如果不透明响应满足您的需要,请将请求的模式设置为“无cors”,以获取禁用cors的资源。

我的代码如下所示:

 fetch("https://feeds.bbci.co.uk/news/rss.xml")
 .then(res => res.json())
 .then(res => console.log(res))

我几乎什么都试过了。设置标题,设置模式,但没有任何效果。有什么问题吗?

您不允许这样做,因为BBC网站没有设置正确的CORS标题

只有设置了正确的CORS头,才能从其他域发出请求。您的最佳选择是通过服务器端代理执行此操作,或者在BBC获得一份工作,并尝试添加正确的标题。

您可以尝试使用以下方法:

google.load(“提要”,“1”);
google.setOnLoadCallback(()=>{
常量url=https://feeds.bbci.co.uk/news/rss.xml';
新的google.feeds.Feed(url).load(函数(结果){
!result.error&&console.log(result.feed.entries);
});
});

那么它不会返回任何有价值的东西,而是返回不透明的内容。@GergőHorváth你说得对,我很困惑。更新我的回答服务器似乎没有发送cors头。你必须代理它。