Stockage Firebase et contrôle D'accès-Autoriser-origine
J'essaie de télécharger des fichiers à partir du stockage Firebase via un XMLHttpRequest, mais Access-Control-Allow-Origin n'est pas défini sur la ressource, ce n'est donc pas possible. Est-il possible de mettre cet en-tête sur le serveur de stockage?
(let [xhr (js/XMLHttpRequest.)]
(.open xhr "GET" url)
(aset xhr "responseType" "arraybuffer")
(aset xhr "onload" #(js/console.log "bin" (.-response xhr)))
(.send xhr)))
Message D'erreur Chrome:
XMLHttpRequest ne peut pas charger https://firebasestorage.googleapis.com/[édité] Aucun en-tête' Access-Control-Allow-Origin ' n'est présent sur la requête ressources. Origine 'http://localhost:3449' est par conséquent pas autorisé accès.
2 réponses
De ce post sur le groupe/liste firebase-talk:
La façon la plus simple de configurer vos données pour CORS est avec l'outil de ligne de commande
gsutil
. Les instructions d'installation degsutil
sont disponibles à https://cloud.google.com/storage/docs/gsutil_install . Une fois que vous avez installégsutil
et authentifié avec lui, vous pouvez l'utiliser pour configurer CORS.Par exemple, si vous souhaitez simplement autoriser les téléchargements d'objets à partir de votre domaine personnalisé, mettez ces données dans un fichier nommé la scro.json (remplacement de
"https://example.com"
par votre domaine):[ { "origin": ["https://example.com"], "method": ["GET"], "maxAgeSeconds": 3600 } ]
Ensuite, exécutez cette commande (en remplaçant
"exampleproject.appspot.com"
par le nom de votre compartiment):gsutil cors set cors.json gs://exampleproject.appspot.com
Et vous devriez être réglé.
Si vous avez besoin d'une configuration CORS plus compliquée, consultez les documents à https://cloud.google.com/storage/docs/cross-origin#Configuring-CORS-on-a-Bucket .
Je veux juste ajouter à la réponse. Il suffit d'aller à votre projet dans google console (console.cloud.google.com/home) et sélectionnez votre projet. Là, ouvrez le terminal et créez simplement le cors.fichier json (touch cors.json
), puis suivez la réponse et éditez ce fichier (vim cors.json
) comme suggéré par @ frank-van-puffelen
Cela a fonctionné pour moi. À votre santé!