[解決済み] Firebaseストレージとアクセス制御・許可・オリジン
質問
Firebase StorageからXMLHttpRequestでファイルをダウンロードしようとしていますが、リソースにAccess-Control-Allow-Originが設定されていないため、ダウンロードすることができません。ストレージサーバーにこのヘッダーを設定する方法はありますか?
(let [xhr (js/XMLHttpRequest.)]
(.open xhr "GET" url)
(aset xhr "responseType" "arraybuffer")
(aset xhr "onload" #(js/console.log "bin" (.-response xhr)))
(.send xhr)))
Chromeのエラーメッセージです。
<ブロッククオートXMLHttpRequest を読み込むことができません。 https://firebasestorage.googleapis.com/[EDITED] 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。 リソースに存在しません。オリジン ' http://localhost:3449 へのアクセスは許可されません。 のアクセスは許可されていません。
どのように解決するのですか?
ここから firebase-talkグループ/リストに投稿されたものです。 :
<ブロッククオート
CORS のためにデータを設定する最も簡単な方法は
gsutil
コマンド ライン ツールを使用することです。
のインストール手順は以下のとおりです。
gsutil
は次の場所で入手できます。
https://cloud.google.com/storage/docs/gsutil_install
.
インストールが完了したら
gsutil
をインストールして認証したら、それを使って CORS を設定することができます。
たとえば、カスタム ドメインからのオブジェクトのダウンロードを許可するだけなら、このデータを cors.json という名前のファイルに置きます(次のように置き換えます)。
"https://example.com"
を自分のドメインに置き換えてください)。
[
{
"origin": ["https://example.com"],
"method": ["GET"],
"maxAgeSeconds": 3600
}
]
<ブロッククオート
次に、このコマンドを実行します。
"exampleproject.appspot.com"
をバケツの名前に置き換えてください)。
<ブロッククオートgsutil cors set cors.json gs://exampleproject.appspot.com
で、設定されているはずです。
より複雑な CORS 設定が必要な場合は、以下のドキュメントを参照してください。 https://cloud.google.com/storage/docs/cross-origin#Configuring-CORS-on-a-Bucket .
上記は現在、Firebaseのドキュメントにも記載されている CORS の設定
関連
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] XMLHttpRequestが読み込めない XXX 'Access-Control-Allow-Origin' ヘッダがない
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
-
[解決済み] file:// URLから実行されるアプリケーションのリクエストで、"Origin null is not allowed by Access-Control-Allow-Origin" エラーが発生する。
-
[解決済み】Access-Control-Allow-OriginでOriginが許可されない。
-
[解決済み】「アクセス制御-許可-オリジン」がない - Node / Apacheのポートの問題
-
[解決済み] アプリを別のFirebaseアカウントに転送する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラーで終了しました。Gradle タスク assembleDebug は終了コード 1 で失敗しました。
-
[解決済み] Firebase Cloud FunctionのHTTPエンドポイントを保護し、Firebase認証ユーザーのみを許可するには?
-
[解決済み] Firebase Cloud MessagingのAPI KEYはどこにありますか?
-
[解決済み] プロバイダの取得ができない com.google.firebase.provider.FirebaseInitProvider
-
[解決済み] Firebaseメッセージング、Server Keyはどこで入手できますか?
-
[解決済み] Firebaseアプリにコラボレーターを追加する方法とは?
-
[解決済み] どうしたら解決できますか?Error: Firebase プロジェクトのリストアップに失敗しました。詳細はfirebase-debug.logを参照してください。
-
[解決済み] Google Firestoreです。プロパティ値の部分文字列に対するクエリ (テキスト検索)
-
[解決済み] firebase cliからアプリを切り替えるには?
-
[解決済み] Java修飾語(abstract, final, public, static, etc.)の妥当な順番は?