2017-01-28 5 views
0

アクセス・サーバー側がないAPIに接続しようとすると、Angular 2です。 私はこのAPIを知っていて、トークンは正常です。私は既存のPHPアプリケーションをAngularに変換しています。ここでローカル実行時にX-Auth-Tokenを使用してAPIに接続

がmyapp.service.tsある

import { Injectable } from '@angular/core'; 
import { Http, Headers } from '@angular/http'; 
import 'rxjs/add/operator/map'; 

@Injectable() 
export class DxdService { 

    private apiUrl = 'https://path/to/my/api/'; 

    constructor(private _http: Http){ 

    } 

    createAuthorizationHeader(headers: Headers) { 
     headers.append('X-Auth-Token','myvalidkey'); 
    } 

    getValueFromApi(){ 
     let headers = new Headers(); 
     this.createAuthorizationHeader(headers); 
     return this._http.get(this.apiUrl, headers) 
     .map(res => res.json()); 
    } 
} 

この戻りは常に

GET https://path/to/my/api/ 401 (Unauthorized)

XMLHttpRequest cannot load https://path/to/my/api/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:3000' is therefore not allowed access. The response had HTTP status code 401.

私はここに把握することはできません、私は設定方法をしました私のヘッダーx-auth-tokenが間違っているか、私は再びAccess-Control-Allow-Origin CORSの問題に挑戦しましたか?

Access-Control-Allow-Originヘッダー応答を変更するためにサーバー側にアクセスできないことを考慮して、ヘッダーを設定する方法が正しい場合、どうすればローカルで開発を続けることができますか?

答えて

0

あなたはフロントエンドの観点からこの問題を解決することはできません、あなたは適切な調整を行うためにサーバにアクセスする必要があり、あなたが方法としてJSONPを実装しようとすることができ、あなたのアンギュラアプリケーション

から、それはづけし作りますあなたの要求で。ちょうど私が私のREST APIは、あなたが提供するリンクでサーバにアクセスすることはできませんとしてあなたは、here

+0

おかげで、この問題に関連する多くの答えを見つけることができますJSONPだけGET

$http({ method: 'JSONP', url: url }). success(function(status) { //your code when success }). error(function(status) { //your code when fails }); 

で動作することに注意してください私にアイデアを与えて、代わりの方法に私を置きました。ここで、私は希望のJSONデータを返すように制御できるサーバー上に一時的なPHPスクリプトを素早く作成します。 – Benoit

+0

私は角度1の構文だと思います –

関連する問題