2017-11-18 22 views
3

私はAngular2が初めてです。 Firebase APIから値を取得しようとしますが、私はエラーの下に取得しています:Angular2 Firebase:プリフライトの応答に無効なHTTPステータスコード405があります

OPTIONS https://udemy-ng-http.firebaseio.com/data 405 (Method Not Allowed) 

Failed to load https://udemy-ng-http.firebaseio.com/data: Response for preflight has 

invalid HTTP status code 405 

しかし、私はFirebase APIエンドポイントにデータを投稿することができています。

このコミュニティで提供されている他のソリューションも試しましたが、役に立たなかったです。以下は私のコードです。

コード:

getServer(){ 
    let headers = new Headers(); 
    headers.append('Access-Control-Allow-Headers', 'Content-Type'); 
    headers.append('Access-Control-Allow-Origin', '*'); 
    headers.append('Content-Type', 'application/json') ; 
    headers.append('charset','UTF-8'); 
    headers.append('Accept','application/json'); 
    let options = new RequestOptions({ headers: headers }); 

    return this.http.get('https://udemy-ng-http.firebaseio.com/data',options) 
     .map(
      (response: Response) => { 
       const data = response.json(); 
       for (const server of data) { 
        server.name = 'FETCHED_' + server.name; 
       } 
       return data; 
      } 
     ) 
     .catch(
      (error: Response) => { 
       return Observable.throw('Something went wrong'); 
      } 
     ); 
} 
+0

は、あなたが作成したfirebaseアプリhttps://udemy-ng-http.firebaseio.com/data IS?またはそれはudemyによって与えられた何かですか? – Nutan

+0

これはudemyによって与えられます。私はデータを投稿することができますが、getを使用することはできませんでした。 私自身のfirebaseエンドポイントを作成しようとしましたが、それも動作しませんでした.. 助けてもらえますか? –

答えて

2

headers.append('Access-Control-Allow-Origin', '*');

CORSの使用を示すFirebaseチームが提供する2 sample functionsがありますを削除してくださいあなたが現在使用しているよりもコルスで作業する方法。また

、サンプルに示すように、このように輸入を検討:

const cors = require('cors')({origin: true}); 
0

あなたのエンドポイントに.jsonを追加する必要があります。 https://udemy-ng-http.firebaseio.com/data.jsonを打つことを試みなさい。それは404を与える。あなたが作成したものを打つことができます。私が作ったおしっこを見てみてください。あなたがあなた自身のアプリでURLを交換する必要が

https://plnkr.co/edit/ZTZ9QXsDWRlvboPh2OEu?p=preview

let _url = 'https://irelief-3ff8d.firebaseio.com/bookings.json'; 
    //https://udemy-ng-http.firebaseio.com/data 
    this.http.get(_url, { headers: headers }).subscribe((response)=>{ 
     alert('response >> '+JSON.stringify(response)); 
     this.responseData = response; 
    },err => alert('status : '+err.status))); 

。お役に立てれば。

P.S.この例では、4.4.6の角度バージョンを使用しています。

第二のサンプルは異なるを使用しています。

関連する問題