繁体   English   中英

解决Angular中的CORS问题(无法访问API)?

[英]Resolving CORS issue in Angular (without access to API)?

我有以下问题:在我的Angular 4应用程序中,我想从公共API获取(获取请求)数据。

仅从浏览器或通过Postman调用URL即可正常工作,但是当我从Angular发出HTTP Get请求时,出现该错误:

XMLHttpRequest无法加载https://api.kraken.com/0/public/AssetPairs 所请求的资源上没有“ Access-Control-Allow-Origin”标头。 因此,不允许访问源“ localhost:4200”。

我找到了解决方案,但没有一个解决了我的问题,因为它是第三方API,不受我的控制...我也尝试设置标头,但没有用:

let headers = new Headers({ 'Access-Control-Allow-Origin': 'true' , 'Content-Type':'application/json', 'crossDomain':'true'});
    let options = new RequestOptions({ headers: headers, withCredentials: false});
    return this.http.get('https://api.kraken.com/0/public/AssetPairs' , options)
      .map(
        (response: Response) => {
          console.log(response);
          const markets = response.json();
          return markets;
        },
        (error: Error) => {
          console.log('error');
          console.log(error);
        }
      );

预先感谢您的建议!

我建议您使用代理服务器。 您可以通过代理服务器访问第三方资源。 例如,您放置了nginx服务器,并在nginx.conf中添加了cors配置。 Angular请求直接发送到nginx,然后将其重新路由到您的第三方资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM