Próbuję pobrać pliki z magazynu Firebase za pośrednictwem XMLHttpRequest, ale w zasobie nie ustawiono Access-Control-Allow-Origin, więc nie jest to możliwe. Czy istnieje sposób na ustawienie tego nagłówka na serwerze magazynu?
(let [xhr (js/XMLHttpRequest.)]
(.open xhr "GET" url)
(aset xhr "responseType" "arraybuffer")
(aset xhr "onload" #(js/console.log "bin" (.-response xhr)))
(.send xhr)))
Komunikat o błędzie Chrome:
XMLHttpRequest nie może załadować https://firebasestorage.googleapis.com/[EDITED] Żądany zasób nie zawiera nagłówka „Access-Control-Allow-Origin”. Dlatego źródło „ http: // localhost: 3449 ” nie ma dostępu.
Odpowiedzi:
Z tego posta w grupie / liście Firebase-Talk :
źródło
"origin": ["*"],
zamiast"origin": ["https://example.com"],
gsutil cors set myjson.json gs://projectname.appspot.com
jak wspomniano powyżej)Google Cloud ma teraz wbudowany edytor, który jeszcze bardziej ułatwia ten proces. Nie musisz niczego instalować w systemie lokalnym.
>_
przycisk ikony na górnym pasku nawigacyjnym.cors.json
plik.gsutil cors set cors.json gs://your-bucket
źródło
>_
Chcę tylko dodać do odpowiedzi. Po prostu przejdź do swojego projektu w konsoli Google (console.cloud.google.com/home) i wybierz swój projekt. Tam otwórz terminal i po prostu utwórz plik cors.json (
touch cors.json
), a następnie postępuj zgodnie z odpowiedzią i edytuj ten plik (vim cors.json
) zgodnie z sugestią @ frank-van-puffelenTo zadziałało dla mnie. Twoje zdrowie!
źródło
cloud
subdomenie, a nie w tejfirebase
(„console.cloud.google.com/home”) i poszukaj>_
przycisku z ikoną w prawym górnym rogu.inną metodą jest użycie Google JSON API. krok 1: zdobądź token dostępu do użycia z JSON API Aby uzyskać token użyj wejdź na: https://developers.google.com/oauthplayground/ Następnie wyszukaj JSON API lub Storage Wybierz wymagane opcje, tj. odczyt, zapis, pełny_dostęp (zaznacz te które są wymagane) Postępuj zgodnie z procedurą, aby otrzymać Access Token, który będzie ważny przez godzinę. Krok 2: użyj tokena, aby trafić w Google JSON API, aby zaktualizować CORS
Przykładowe Curl:
źródło
Chciałbym dodać dla tych, którzy rozpaczliwie potrzebują rozwiązania, tak jak ja po wypróbowaniu tego wszystkiego i nie rozwiązaniu problemu. Znalazłem świetny artykuł online oferujący 3 rozwiązania, a pierwszy zadziałał dla mnie… wtyczka Google Chrome… tak! ..
rozszerzenie moesif CORS Upewnij się, że po instalacji, włączysz go
źródło
Aby uzyskać dostęp do dowolnego zasobu z zastosowanym nagłówkiem CORS, możesz użyć małego projektu, który wykonałem w Golang dla siebie - https://proxify-cors.herokuapp.com/
źródło