Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RXJS可观测合并映射链_Javascript_Angular_Rxjs_Cors_Observable - Fatal编程技术网

Javascript RXJS可观测合并映射链

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

我有一个简单的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-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问题。。。