CORS

2017-12-12 3 views
1

私はhtmlファイルでget呼び出しを行うとき、私は私のfirebaseストレージ上の通常のCORSエラーのgettinよ:CORS

Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response. 

私はコールのためにaxiosを使用しています:

axios.get('https://firebasestorage.googleapis.com/v0/b/xxxxx-xxxxx.appspot.com/o/files%2Fsigning%2F148%2F459.html?alt=media&token=f3be2ef2-a598-4c30-a77b-8077e8b1f7bc', 
{ 
    headers: {'Access-Control-Allow-Origin': '*',} 
) 

私は国民に設定されたアクセスを持っている:

service firebase.storage { 
    match /b/{bucket}/o { 
    match /{allPaths=**} { 
     allow read, write; 
    } 
    } 
} 

私はイメージをロードする場合、これと同じセットアップが正常に動作しますが、それは私の目のエラーを与えています保存されたHTMLファイル。どのようにそれを修正するための任意の考えですか?

+0

フロントエンドコードからヘッダー:{'Access-Control-Allow-Origin': '*'、}」を削除します。それが、あなたのブラウザがプリフライト要求を送信する原因となります。 Access-Control-Allow-Originは、サーバーが返信するための厳密な応答ヘッダーです。リクエストに追加することは決してありません。 – sideshowbarker

+0

それは私の問題を回避しようとした試みの一つでした。それはそれの有無にかかわらず同じです。 – iMad

+0

それがなければ、まさにどのようなエラーが出るのですか? * "要求ヘッダフィールドAccess-Control-Allow-Originは、プリフライト応答でAccess-Control-Allow-Headersが許可していないものです。 – sideshowbarker

答えて

1

FirebaseはGoogleのクラウドと同じストレージインフラストラクチャを使用していますが、corsルールを設定するfirebaseメソッドはありませんが、gc set upを使用できます。 まず、あなたは、GoogleのクラウドSDKをインストールする必要があります。

exec -l $SHELL 

初期のgcloud:

curl https://sdk.cloud.google.com | bash 
はあなたのシェルを再起動します

。これにより、あなたのアカウントを選択して認証するよう求められます。

gcloud init 

は、その後、次の内容

[ 
    { 
     "origin": ["http://example.appspot.com"], 
     "responseHeader": ["Content-Type"], 
     "method": ["GET", "HEAD", "DELETE"], 
     "maxAgeSeconds": 3600 
    } 
] 

でJSONファイルを作成し、firebaseストレージGCでこれを実行します。同様にあなたのための問題をFIXEすべきエンドポイント

gsutil cors set yourFile.json gs://yourProject 

関連する問題