Access-Control-Allow-Origin错误Rails 5.0,Amazon S3,使用JQuery直接上传

时间:2017-03-03 05:16:04

标签: jquery ruby-on-rails amazon-web-services amazon-s3

我正在尝试开发一个表单,根据:https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails说明直接从Rails 5.0.1应用上传图片到亚马逊s3。

我正在使用jQuery-File-Upload插件以及aws-sdk gem。尝试提交图像文件时,收到错误消息:

"对预检请求的响应未通过访问控制检查:否' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:3000'因此不允许访问。响应的HTTP状态代码为400。"

据我了解,这表明CORS存在问题。

我在S3存储桶中配置了CORS权限,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>http://localhost:3000</AllowedOrigin>
        <AllowedOrigin>https://localhost:3000</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
         <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

我尝试用&#34; *&#34;替换原点,单独尝试每个网址,尝试不同的标题,并且似乎尝试了每个推荐。

此外,我的预约帖子已设为公开阅读&#39; :

  def set_s3_direct_post

@s3_direct_post = S3_BUCKET_NAME.presigned_post(key: "uploads/#{SecureRandom.uuid}/${filename}", success_action_status: '201', acl: 'public-read')

  end

而且,如果有任何混淆,我没有使用Heroku。

是否有其他人试图使用类似的上传方法并遇到同样的错误?

提前感谢您的帮助!

0 个答案:

没有答案