2017-11-03 3 views
0

私はapi呼び出しを使用してユーザー情報を取得するためのユーザーサービスを作成しました。角型アプリケーションでAPIデータを取得できませんでした。Access Control-Allow-Originがスローされました。

user.service.ts 

getBasicInfo(): Observable<any> { 
      return this.http.get(this.config.apiUrl + 'api/supplier-basic-info/' + 'userID') 
      .map(res => res.json()); 
     } 

、私はこのように観察を書かれているコンポーネントで:次に

<div>{{getBasicInfo()}}</div> 

user.component.ts 

getBasicInfo(){ 
    this._userService.getBasicInfo().subscribe(
     data => this.supplierInfo = data.results 
    ); 
    } 

と私は、このようなHTMLコンポーネントにデータをバインドしようとしていますコンソールにエラーが表示されます:

Failed to load http://<SOME.IP.ADDRESS.>/api/supplier-basic-info/54: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. The response had HTTP status code 403. 

なぜHTMLでデータを取得できないのですか?誰かが私にこれを助けることができますか?バックエンドの開発者がクッキーにユーザーの詳細を格納しているので。それ以外は、データを取得し、HTMLページでAngularを使用してバインドする必要があります。私はこのAngular4コンポーネントベースのプログラミングには非常に新しいです。

ありがとうございました。

+0

バックエンドテクノロジー – Robert

+1

は重複しているとフラグされます – wdanda

+0

しかし、「

{{getBasicInfo()}}
」は何も表示されません。そして、それは加入者とメソッドを呼び出すための災害です、あなたのブラウザは、要求が何度も繰り返し呼び出されるのでフリーズするでしょう.... – Alex

答えて

1

これはフロントエンドコードとは関係ありません。これを最適化することはできますが、それは別の話になります。

問題は、CORSがアクティブ化されていないことです。 CORS

サーバー側の構成でCORSをアクティブ化する必要があります。あなたの技術を指定していないので、私は正確なリンクであなたを助けることはできません。

+0

実際には、例えば、jsonのような有効なメディアタイプに合わせてあなたのヘッダを設定する必要があるかもしれませんが、そうしないと、サポートされていないメディア・タイプのためにサーバーによって拒否される可能性があります。 –

+0

バックエンドはdrupalを使用して開発され、アプリケーションで消費するdrupal apisを生成します。 – youi

+0

@Berlin_Broの場合、エラーは異なります。 – Ore

関連する問題