2017-11-12 4 views
0

(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.") 
    }); 
    } 
} 

それは私がポストマンで実行した場合、私はすべてのデータを参照してください、私は角度4で実行した場合、私はChromeデベロッパーツールで次のエラーが表示され、NBA API統計へのリクエストです

https://stats.nba.com/stats/leaguedashplayerbiostats?PerMode=Totals&LeagueID=00&Season=2017-18&SeasonType=Regular%20Seasonの読み込みに失敗しました: いいえ「アクセス制御 - 許可 - 起源」ヘッダは、要求された たリソース上に存在しています。したがって、「http://localhost:4200」の原点は許可されません。

は、私は私がオンラインに読んだ多くのソリューションを試してみましたng serve

コマンドを使用してサーバーを実行しているんだけど、私は唯一の解決策は、バックエンドで変更を行うことだと思い

+0

はい、すでにこの質問をしており、既に回答があります。 –

+1

エラーはサーバーが「Access-Control-Allow-Origin」を設定していないと言っているほどです。 – fins

+0

の場合、郵便配達員と違ってなぜ失敗するのか不思議であった場合は、この問題を参照してください:https://github.com/bttmly/nba/issues/34 – fins

答えて

2

はい。サイトからCORSで作業するようにサーバーを構成する必要があります。

なぜPostmanが正しく動作するのですか?ブラウザではないからです。あなたは完全に郵便配達員の要請を完全に管理します。

しかし、ブラウザで作業する場合、CSRFのような攻撃を避けるためにいくつかの特定の方法を使用します。

関連する問題