为什么我在角度请求中收到此错误? (CORS)

时间:2017-11-12 18:58:20

标签: angular api request cors

我有这个控制器

import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  url: string;

  constructor(private http: HttpClient){
    this.url = 'https://stats.nba.com/stats/leaguedashplayerbiostats?PerMode=Totals&LeagueID=00&Season=2017-18&SeasonType=Regular Season';

    this.http.get(this.url,)
      .subscribe(/*data => {*/
        data => {
          console.log("HOLA");
        },
        err => {
          console.log("Error occured.")
    });
  }
}

这是对NBA API统计数据的请求,如果我在Postman中执行,我会看到所有数据,但如果我使用Angular 4执行,我会看到Chrome开发者工具中的下一个错误

  

无法加载   https://stats.nba.com/stats/leaguedashplayerbiostats?PerMode=Totals&LeagueID=00&Season=2017-18&SeasonType=Regular%20Season:   请求中不存在“Access-Control-Allow-Origin”标头   资源。因此不允许来源“http://localhost:4200”   访问。

我正在使用命令ng serve

运行服务器

我尝试过很多在线阅读的解决方案,但我认为唯一的解决方案是在后端进行更改

1 个答案:

答案 0 :(得分:2)

是的,您需要配置服务器以便从您的站点使用CORS。

为什么Postman工作正常?因为它不是浏览器。你完全控制邮差的整个请求。

但是当你使用浏览器时,它会使用一些特定的方法来避免像CSRF这样的攻击。