2

Ich habe das Rack-Cors-Juwel heruntergeladen, den Dokumentationen gefolgt und versucht, die CORS-Einstellungen in meinem Amazon AWS S3-Bucket zu konfigurieren, um GET-Anfragen von meiner Site zu akzeptieren, aber immer noch denselben Fehler in meiner Konsole.Wie bekomme ich CORS-Header für die App rails, um auf aws s3 bucket zuzugreifen?

<CORSConfiguration> 
    <CORSRule> 
     <AllowedOrigin>https://[url]</AllowedOrigin> 
     <AllowedOrigin>http://[url]</AllowedOrigin> 
     <AllowedOrigin>http://localhost:3000</AllowedOrigin> 
     <AllowedMethod>GET</AllowedMethod> 
     <MaxAgeSeconds>3000</MaxAgeSeconds> 
     <AllowedHeader>*</AllowedHeader> 
    </CORSRule> 
</CORSConfiguration> 

XMLHttpRequest kann nicht geladen werden [audio_url_from_amazon]. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Origin [my_website_url] ist daher nicht erlaubt.

Jede Hilfe mit diesem wäre toll, da ich andere Fragen gelesen habe, aber immer noch nicht die richtige Konfiguration funktioniert.

+0

Wenn Sie in den Bucket schreiben, welche Berechtigungen setzen Sie? Ich benutze den Edelstein s3 und ich hatte ein ähnliches Problem, das gelöst wurde, indem ich record.acl =: public_read einstellte, aber das ist eine dsl von dem Edelstein, so dass ich nicht sicher bin, wie die Syntax das Hand-Rollen darstellt. –

+0

In welcher Datei haben Sie diesen Code eingefügt, nachdem Sie das Juwel installiert hatten? @ruby_newbie – Chris

+0

[Ich glaube nicht, dass CORS mit dem magischen Hostnamen 'localhost' arbeitet.] (Http://Stackoverflow.com/a/10892392/1695906) Ist das, gegen was Sie testen? –

Antwort

0

Fügen Sie gem 'rack-cors' zu Ihrem gemfile, run bundle hinzu. Erstellen Sie einen neuen Initialisierer cors.rb. Fügen Sie den folgenden Code dort hinzu

Rails.application.config.middleware.insert_before 0, 'Rack::Cors' do 
    allow do 
    origins '*' 

    resource '*', 
    headers: :any, 
    methods: [:get] 
    end 
end 

Dies sollte Ihr Problem beheben.

+0

Ich habe diesen Code bereits in meiner App. – Chris