Storage di Firebase e Access-Control-Allow-Origin

Sto cercando di scaricare file da Firebase Storage tramite XMLHttpRequest, ma Access-Control-Allow-Origin non è impostato sulla risorsa, quindi non è ansible. C’è un modo per impostare questa intestazione sul server di archiviazione?

(let [xhr (js/XMLHttpRequest.)] (.open xhr "GET" url) (aset xhr "responseType" "arraybuffer") (aset xhr "onload" #(js/console.log "bin" (.-response xhr))) (.send xhr))) 

Messaggio di errore di Chrome:

XMLHttpRequest non può caricare https://firebasestorage.googleapis.com/[EDITED] Nessuna intestazione ‘Access-Control-Allow-Origin-‘ è presente sulla risorsa richiesta. L’origine ‘ http: // localhost: 3449 ‘ non è quindi consentita l’accesso.

    Da questo post sul gruppo / elenco firebase-talk :

    Il modo più semplice per configurare i tuoi dati per CORS è con lo strumento da riga di comando gsutil . Le istruzioni di installazione per gsutil sono disponibili su https://cloud.google.com/storage/docs/gsutil_install . Una volta installato gsutil e autenticato con esso, puoi usarlo per configurare CORS.

    Ad esempio, se desideri solo consentire il download di oggetti dal tuo dominio personalizzato, inserisci questi dati in un file denominato cors.json (sostituendo "https://example.com" con il tuo dominio):

     [ { "origin": ["https://example.com"], "method": ["GET"], "maxAgeSeconds": 3600 } ] 

    Quindi, esegui questo comando (sostituendo "exampleproject.appspot.com" con il nome del tuo bucket):

     gsutil cors set cors.json gs://exampleproject.appspot.com 

    e dovresti essere impostato.

    Se hai bisogno di una configurazione CORS più complicata, consulta i documenti all’indirizzo https://cloud.google.com/storage/docs/cross-origin#Configuring-CORS-on-a-Bucket .

    Voglio solo aggiungere alla risposta. Vai al tuo progetto in google console (console.cloud.google.com/home) e seleziona il tuo progetto. Aprire il terminale e creare il file cors.json ( touch cors.json ), quindi seguire la risposta e modificare questo file ( vim cors.json ) come suggerito da @ frank-van-puffelen

    Questo ha funzionato per me. Saluti!