Angular中请求的资源上没有“ Access-Control-Allow-Origin”标头

时间:2019-08-21 08:44:17

标签: angular asp.net-web-api

我正在使用第三方API。使用API​​时,出现以下错误:

从原点“ https://api.upstox.com/index/master-contract/nse_eq?symbol=infy”到“ https://angular-8nss2w.stackblitz.io”的获取操作已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否“ Access-Control-Allow-来源的标头出现在请求的资源上。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”,以在禁用CORS的情况下获取资源。 下面是代码:

 sendGetRequest() {
      console.clear();
         const headers = new HttpHeaders()
         .append('cache-control', 'no-cache')
             .append('content-type', 'application/json')
             .append('authorization', 'Bearer e9f67cb305d7e636ab047061c65cdd40187d14bb')
             .append('x-api-key','jeG4wdAseG9CJVQ431MBh6B9lXbMVK0Q7Pyvadlc')
         // Website you wish to allow to connect
         .append('Access-Control-Allow-Origin', '*')

    // Request methods you wish to allow
    .append('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE')

    // Request headers you wish to allow
    .append('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
         return this.http
                    .get(this.url, { headers: headers })
                    .subscribe((res) => this.title= res.toString());

1 个答案:

答案 0 :(得分:0)

第三方api应该启用您来源的请求。如果您尝试从本地主机访问它,则服务器可能不允许来自本地主机的请求。

检查api响应标头中的“ access-control-allow-origin”。您将了解允许哪些来源访问api。

您可以在此处阅读有关CORS的更多信息: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS