2017-09-29 2 views
1

Angular 4フロントエンドからクラウドエンドポイントの後ろにあるGoogleクラウドで実行されているAPIを呼び出すことができません。次のエラーが発生しています。

プリフライト要求に対する応答がアクセス制御チェックを通過しません。要求されたリソースに「アクセス制御許可の原点」ヘッダーがありません。 Origin 'http://localhost:4200'はアクセスできません。応答にHTTPステータスコード403がありました。
Google CloudエンドポイントでGoS APIバックエンドを実行するAngular 4フロントエンドでCORS問題

私はローカルマシンでもswaggerを実行しており、swaggerから正常なAPI呼び出しを行っています。

OpenAPIの(SWAGGER仕様):

host: MyApp.appspot.com 
x-google-endpoints: 
    - name: MyApp.appspot.com 
    allowCors: true 


GOサーバーCORSセッティング:      を私は "github.com/rs/cors" ライブラリを使用しています以下のように
私の様々な設定がされています

c := cors.New(cors.Options{ 
     AllowedOrigins: []string{"*"}, 
     AllowedHeaders: []string{"*"}, 
     AllowedMethods: []string{"GET", "PUT", "POST", "HEAD", "POST"}, 
     AllowCredentials: true, 
    }) 


角度4アプリケーション:

const payloadHeaders = new Headers({'Access-Control-Allow-Origin' : 'http://localhost:4200','authorization':'Bearer *********'}); 
    var url = 'https://MyApp.appspot.com/users/user?u=' + username; 
    this.http.get(url,{headers:payloadHeaders}).timeout(3000) 
    .map((response) => { 
     return response.json(); 
    }).subscribe(


闊歩と角の間の唯一の違いは、httpリクエストを作る方法...私はわからないけれどもかもしれません。スワッガーの起点は '127.0.0.1:64298'ですが、角度は 'localhost:4200'

どのように私はこのCORSの問題を克服することができます知っていますか?

のStackdriverログはスロー:エンドポイント管理が認識できない> HTTP呼び出しのためにスキップさ:OPTIONSは/users/[email protected] しかし、私は、私はGOサーバ自体のそれの世話をしていると思います。だから、少し混乱します。

ありがとうございます!

+0

Angular 2アプリで[No 'Access-Control-Allow-Origin]ヘッダーが重複している可能性があります(https://stackoverflow.com/questions/36002493/no-access-control-allow-origin-header-in- angle-2-app) – FussinHussin

+0

フッサン、解答で提供される解は単に機能しません。 –

+0

フセインは私の名前ではありません、あなたはカールbashを使用して動作するようにhttpの呼び出しを得ていますか?あなたは要求が通過していると確信していますか? – FussinHussin

答えて

0

私の最後には愚かな間違いがありました。 Angularのパスコンポーネントを見逃しました。今はうまくいく。

関連する問題