2

ラックコルセットをダウンロードしてドキュメントに従って、Amazon AWS s3バケット内のCORS設定を自分のサイトからGET要求を受け入れるように設定しようとしましたが、私のコンソールには同じエラーが表示され続けます。aws s3バケットにアクセスするためのレールアプリのCORSヘッダーを取得するには?

<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> 

[audio_url_from_amazon]をXMLHttpRequestで読み込めません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。したがって、Origin [my_website_url]はアクセスが許可されていません。

私は他の質問を読んだが、それでも正しい設定を得ることができないので、これに関する助けは素晴らしいだろう。

+0

バケットに書き込むときに、どのようなアクセス許可を設定していますか?私はs3の宝石を使用していました。私はrecord.acl =:public_readを設定することで解決された同様の問題を抱えていましたが、それはgemからのDSLです。 –

+0

宝石をインストールした後、どのファイルにそのコードを挿入しましたか?@ruby_newbie – Chris

+0

[CORSは魔法のホスト名 'localhost'で動作しないと思います。](http://stackoverflow.com/a/10892392/1695906)それはあなたがテストしているものですか? –

答えて

0

gemファイルにgem 'rack-cors'を追加して、bundleを実行します。 新しい初期化子cors.rbを作成します。そこに次のコードを追加してください。

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

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

これで問題は解決します。

+0

私は既にこのコードを私のアプリに持っています。 – Chris

関連する問題