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 pergsutil
sono disponibili su https://cloud.google.com/storage/docs/gsutil_install . Una volta installatogsutil
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!