Javascript RXJS可观测合并映射链
我有一个简单的api请求,它向一个对象返回一个可观察的对象,该对象中有一组项,每个项中都有一个链接。 因此,我想在当前异步流中直接获取链接后面的数据,但我收到一个CORS错误,错误是:Javascript RXJS可观测合并映射链,javascript,angular,rxjs,cors,observable,Javascript,Angular,Rxjs,Cors,Observable,我有一个简单的api请求,它向一个对象返回一个可观察的对象,该对象中有一组项,每个项中都有一个链接。 因此,我想在当前异步流中直接获取链接后面的数据,但我收到一个CORS错误,错误是: Access to XMLHttpRequest at 'https://orf.at/stories/3146336/' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-O
Access to XMLHttpRequest at 'https://orf.at/stories/3146336/' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
对于我当前的fetchOrfFeed()
函数,这可能吗?
还是我误解了一些基本概念
public fetchOrfFeed():可观察{
返回此.http.get('https://api.rss2json.com/v1/api.json?rss_url=https://rss.orf.at/news.xml')
.pipe(合并映射(feed=>feed.items))
.pipe(mergeMap(item=>this.http.get(item.link));
}
您可以配置您的代理,或者如上所述,配置您的CORS请求
如果您选择代理选项(我认为更好):
查看Angular项目中的proxy.config.json文件,并将该URL添加到其中
例如:
{
"/api/fetch-or-feed": {
"target": "https://api.rss2json.com/v1/api.json?rss_url=https://rss.orf.at/news.xml",
"secure": false,
"logLevel": "debug"
}
}
然后在您的服务呼叫中使用它,如
return this.http.get<OrfFeed>('/api/fetch-or-feed')...
返回此.http.get('/api/fetch或feed')。。。
更多信息:您的问题与RxJS无关。您需要配置CORS请求,请检查以下问题:为您的开发环境配置代理服务器只能修复localhost的问题。它不会修复已部署应用程序中的CORS问题。。。